ProcessGroup 제자리 재구성으로 랭크 장애 뒤에도 클러스터 웜 상태를 유지한 채 복구합니다 | DAKER 커뮤니티

PG 제자리 재구성
설명용 생성 이미지입니다.

한 줄 요약
PyTorch 2.14에서 Backend·ProcessGroup이 제자리 재구성 인터페이스를 노출합니다. 랭크가 죽어도 프로세스 그룹을 통째로 부수고 다시 만들지 않고, abort 훅과 집단통신 전후 훅을 같은 경로로 묶어 그룹을 다시 세울 수 있습니다. Gloo에도 장애 허용 지원이 붙었습니다.

대규모 분산 학습에서 한 랭크만 죽으면 예전에는 웜 상태를 버리고 전체를 재시작했습니다. 오늘은 작은 다중 프로세스 잡에서 한 랭크를 의도적으로 끊은 뒤, 재구성 API로 그룹을 살리는 흐름만 따라가 보십시오. Flight Recorder로 행을 보는 실험과는 목적이 다릅니다.

재현해 볼 실험 조건

  1. 작은 world size(예: 2~4)로 ProcessGroup을 연 뒤, 간단한 allreduce 루프를 워밍업합니다.
  2. 한 랭크를 종료·중단한 뒤, 문서화된 재구성 경로로 그룹을 제자리에서 다시 붙입니다.
  3. 재구성 전후 집단통신이 다시 통과하는지, 웜 상태(옵티마이저·캐시)를 얼마나 남길 수 있는지 기록합니다. Flight Recorder 덤프와 동시에 돌리지 마십시오.

nccl2 백엔드 미리보기와 함께 쓰일 수 있지만, 이번 글의 축은 “그룹을 부수지 않고 다시 맞추는 것”입니다. 재현 노트에 백엔드 이름과 훅 호출 순서를 남깁니다.

실무에서 바로 볼 포인트

관련 DAKER 학습

설명용 생성 이미지입니다. 동작은 작은 분산 잡에서 랭크 중단 후 재구성 성공 여부로 확인하십시오.