레이 Raylet

IT 위키

레이 Raylet은 Ray 분산 컴퓨팅 프레임워크의 핵심 구성 요소로, 각 워커 노드에서 태스크 실행과 객체 저장을 관리하는 경량 프로세스이다.

1 개요[편집 | 원본 편집]

Raylet은 Ray 클러스터 내의 각 노드에서 실행되며, 태스크 스케줄링과 객체 저장소 관리를 담당한다. Ray 0.x 버전에서는 글로벌 스케줄러와 로컬 스케줄러가 분리되어 있었으나, Raylet 구조가 도입되면서 이 기능들이 단일 프로세스에 통합되었다. Raylet은 분산 스케줄러와 오브젝트 스토어를 하나의 프로세스로 구성하여 통신 효율성과 시스템 단순성을 높였다.

2 구성 요소[편집 | 원본 편집]

  • 로컬 스케줄러(Local Scheduler): 로컬 노드에서 실행 가능한 작업을 수락하고 실행한다. 자원이 부족하거나 작업이 다른 노드에서 더 적절하게 실행될 경우, 다른 노드로 위임한다.
  • 객체 저장소(Object Store): Plasma 기반으로 구현되며, 분산된 캐시 역할을 수행한다. 작업의 입력 및 출력 객체를 저장하고 공유한다.

3 주요 기능[편집 | 원본 편집]

  • 태스크의 의존성 분석 및 준비 완료 대기
  • 클러스터 내에서 적절한 노드로 작업 분산
  • 작업 결과를 공유 메모리 기반 객체 저장소에 저장
  • 자원 요구사항을 기반으로 스케줄링 의사결정 수행
  • 노드 간 통신 및 글로벌 컨트롤 스토어(GCS)와 메타데이터 연동

4 작동 방식[편집 | 원본 편집]

  1. 클라이언트로부터 태스크 요청이 들어오면 Raylet은 먼저 필요한 객체가 로컬에 있는지 확인한다.
  2. 객체가 준비되면 태스크를 실행하거나, 다른 노드로 위임한다.
  3. 결과는 로컬 객체 저장소에 기록되며, 필요 시 다른 노드로 전파된다.
  4. 실행 결과는 ObjectRef를 통해 클라이언트에게 전달된다.

5 같이 보기[편집 | 원본 편집]

6 참고 문헌[편집 | 원본 편집]

  • Moritz, Philipp et al. Ray: A Distributed Framework for Emerging AI Applications. OSDI 2018.
  • The Ray Team. Ray Architecture Overview. https://docs.ray.io

7 각주[편집 | 원본 편집]