익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
레이 (분산 컴퓨팅)
편집하기 (부분)
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==리모트 액터== Remote function은 상태를 갖지 않는(stateless) 함수의 병렬 실행에 적합하다. 그러나 상태를 유지해야 하는 경우에는 Remote Actor를 사용한다. ===개요=== *상태를 유지하는 객체를 분산 환경에서 사용할 수 있게 해주는 기능이다. * '''@ray.remote''' 데코레이터를 클래스에 붙여 사용한다. *액터는 하나의 프로세스로 실행되며, 그 안의 상태는 외부에서 접근할 수 없다. *상태 변경은 해당 액터에 메시지를 보내는 방식으로만 가능하다. ===예시 코드=== <syntaxhighlight lang="python"> import ray ray.init() @ray.remote class Counter(object): def __init__(self): self.n = 0 def increment(self): self.n += 1 def read(self): return self.n counters = [Counter.remote() for i in range(4)] [c.increment.remote() for c in counters] futures = [c.read.remote() for c in counters] print(ray.get(futures)) # [1, 1, 1, 1] </syntaxhighlight> === 액터 모델 === * 액터는 고유 주소(handle)를 가진 프로세스이다. *내부 상태는 외부에서 직접 접근할 수 없으며, 메시지를 통해 간접적으로만 조작할 수 있다. *각 액터는 메시지를 하나씩 순차적으로 처리하므로 상태 충돌이 발생하지 않는다. *상태를 나누거나 복제할 수 있다면, 여러 액터 풀을 구성하여 처리량을 향상시킬 수 있다. ===동작 방식=== *Ray는 액터를 새로운 워커로 생성하고, 그 이후 모든 메서드는 해당 워커에서 실행된다. *액터 생성은 GCS에 등록되어 메타데이터(IP, 포트 등)를 공유한다. *각 클라이언트는 GCS를 재조회하지 않고, 캐시된 메타데이터로 직접 gRPC를 통해 액터에게 메시지를 전송한다. *메서드 호출은 remote function과 동일하게 ObjectRef를 반환한다. === 장애 처리=== *액터는 상태를 가지므로 복구가 더 복잡하다. *메시지 처리 중 실패 시 자동 재시도되지 않는다. *메시지 사이에서 실패한 경우, Ray는 다음 호출 시 최대 설정된 횟수만큼 재시도한다. *초기화 실패도 첫 메시지 실패와 동일하게 처리된다.
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록