{"id":"IL-0585","org":"Microsoft","date":"2019-08-08","docs":["https://github.com/msr-fiddle/philly-traces"],"title":{"en":"Training jobs on Microsoft's Philly GPU cluster failed hours into runs when checkpoints could not be written to HDFS","ko":"Philly GPU 클러스터의 학습 작업이 오래 실행된 뒤 모델 체크포인트를 만들지 못해 실패했다"},"domain":["ai-infra"],"impact":{"scope":"Deep learning training jobs on one Philly GPU cluster from October to December 2017: 1,995 failure events in 948 jobs, 16.33% of the GPU time lost to failures","users":"85 users","region":"unknown"},"review":{"written_by":"session","reviewed_at":null,"reviewed_by":null},"lessons":{"en":"Infrastructure failures such as checkpoint errors are rare compared with user errors, but they appear after long runs and so dominate the time until failures are detected. The authors recommend that schedulers classify error messages from job logs at runtime and adapt their retry policies, for example continuing to retry network timeouts while no longer retrying incorrect inputs, to avoid wasteful re-execution.","ko":"논문은 HDFS 같은 클러스터 구성 요소 때문에 난 실패가 학습 과정의 훨씬 뒤에서 나타난다고 정리했다. 모델 체크포인트 오류와 MPI 런타임 실패는 드물지만 오래 실행된 뒤에 나타나 실패를 알아채기까지 걸린 시간의 큰 몫을 차지했다. 논문은 학습 작업이 남기는 오류 메시지를 실시간으로 분류하고, 실패 종류에 따라 재시도 횟수 같은 스케줄링 값을 작업마다 바꾸는 시스템이 쓸모 있다고 했다. 예를 들어 잘못된 입력 같은 실패는 재시도를 멈추고, 네트워크 타임아웃은 계속 재시도한다."},"related":[],"sources":[{"url":"https://arxiv.org/abs/1901.05758","kind":"paper","archived":"https://web.archive.org/web/20260116132027/https://arxiv.org/abs/1901.05758"}],"summary":{"en":"Philly is a Microsoft service that schedules and manages deep learning training jobs on large shared GPU clusters. The cluster in the study had hundreds of machines with thousands of GPUs of one model, in 2-GPU and 8-GPU servers, used HDFS as its distributed storage and a resource manager based on Apache YARN. Over 75 days from October to December 2017 it ran 96,260 jobs in 14 virtual clusters. The authors classified failed jobs with more than 230 rules that match failure signatures in each job's stdout and stderr logs.\n\nOne of the infrastructure failure reasons was the model checkpoint error: a job could not create its model checkpoint after a number of epochs, usually because of a transient error in HDFS or because the HDFS name node was recovering. It caused 1,995 failure events in 948 jobs. Because these jobs had usually run for hours, the checkpoint errors accounted for 21.73% of the summed runtime to failure of all failures, and 16.33% of runtime to failure multiplied by the number of GPUs. Jobs that failed were retried a fixed number of times before being marked unsuccessful.","ko":"Microsoft Research 의 연구진은 Microsoft 안에서 딥러닝 모델 학습을 맡는 서비스 Philly 의 다중 테넌트 GPU 클러스터 하나에서 2017년 10월부터 12월까지 75일 동안 작업 96,260개의 로그를 모아 분석했다. 이 클러스터는 서버 수백 대와 같은 모델의 GPU 수천 개로 이루어졌고, 분산 저장소로 HDFS 를, 리소스 관리자로 Apache YARN 을 썼다. 학습 입력 데이터는 HDFS 에 있었다. 실패한 작업은 정해진 횟수만큼 다시 실행됐고, 그래도 실패하면 unsuccessful 로 끝났다.\n\n연구진은 실패한 작업의 stdout 과 stderr 로그를 230개가 넘는 규칙으로 분류했다. 그렇게 나눈 실패 원인 가운데 하나가 모델 체크포인트 오류였다. 이 오류는 작업이 에포크를 일정 수 마친 뒤 모델 체크포인트를 만들지 못할 때 났고, 대개 HDFS 의 일시적인 오류나 HDFS 네임노드 복구 때문이었다. 75일 동안 1,995번의 실패가 작업 948개와 사용자 85명에게서 나왔다. 실패까지의 실행 시간 중앙값이 181.67분이어서 대개 10분 안에 나는 사용자 코드 오류보다 훨씬 늦게 났다. 그래서 횟수는 많지 않았지만 실패한 작업이 쓴 실행 시간의 21.73%를, GPU 시간으로는 16.33%를 차지했다."},"trigger":{"en":"A job reached the point where it writes a model checkpoint while HDFS, the cluster's distributed storage, had a transient error or its name node was recovering.","ko":"체크포인트를 만들 때 HDFS 에서 일시적인 오류가 나거나 HDFS 네임노드가 복구 중이었다."},"severity":"unknown","symptoms":["training-job-failed","storage-disconnected"],"timeline":{"detected_after":null,"resolved_after":null},"date_kind":"published","detection":{"en":"The job failed and the scheduler retried it. The authors attributed the failures to checkpoint errors afterwards with a rule-based classifier that matches failure signatures in the stdout and stderr logs of failed jobs.","ko":"실패한 작업은 스케줄러가 정해진 횟수만큼 다시 실행했고, 계속 실패하면 unsuccessful 로 표시했다. 연구진은 실패한 작업의 stdout 과 stderr 로그에서 230개가 넘는 규칙으로 실패 원인의 시그니처를 찾아 이 오류를 가려냈다."},"components":["shared-filesystem"],"root_cause":"dependency-failure","remediation":[],"action_items":[],"contributing":[],"recurrence_of":null,"symptoms_text":{"en":"On Philly, Microsoft's shared GPU cluster for deep learning training, jobs failed because they could not create a model checkpoint after a number of epochs had completed. Over a 75-day trace from October to December 2017 this \"Model ckpt error\" occurred 1,995 times in 948 jobs from 85 users.\n\nThese failures came late in a job's life. The median runtime before the failure was 181.67 minutes, the 90th percentile 3,728.93 minutes and the 95th percentile 8,196.02 minutes, while failures from user syntax, semantic and configuration errors usually came within about 10 minutes. Model checkpoint errors and MPI runtime failures, the two infrastructure failure reasons the authors examined, together were only 6.2% of all failure events, but because they appeared after long runs they dominated the time until failures were detected.\n\nThe failures were spread over job sizes: 743 of the failure events were in 1-GPU jobs, 384 in jobs with 2 to 4 GPUs and 868 in jobs with more than 4 GPUs. Philly retries a failed job a fixed number of times and marks it unsuccessful when it keeps failing. The GPU time lost to a failure grows with both the runtime before the failure and the number of GPUs the job holds.","ko":"Philly 클러스터의 딥러닝 학습 작업이 에포크를 일정 수 마친 뒤 모델 체크포인트를 만들지 못하고 실패했다. 실패는 작업이 오래 돈 뒤에 났고, 실패까지 걸린 실행 시간의 중앙값이 181.67분이었다.\n\n2017년 10월부터 12월까지 75일 동안 모은 로그에서 이 실패는 1,995번 일어났고, 작업 948개와 사용자 85명에게 걸쳐 있었다. 실패까지 걸린 실행 시간은 90번째 백분위수가 3,728.93분, 95번째 백분위수가 8,196.02분이었다.\n\n실패한 시도를 작업이 요청한 GPU 수에 따라 나누면 GPU 1개 작업이 743번, GPU 2~4개 작업이 384번, GPU 4개를 넘는 작업이 868번이었다. 실패한 작업들이 실패하기까지 쓴 실행 시간을 모두 더하면 그중 21.73%가 이 오류였다. 실행 시간에 GPU 수를 곱한 GPU 시간으로 따지면 16.33%였다.\n\n모델 체크포인트 오류는 인프라 쪽 실패로 분류됐다. 모델 체크포인트 오류와 MPI 런타임 실패를 합쳐도 전체 실패 시도의 6.2%에 그쳤다. 하지만 두 오류는 오래 실행된 뒤에 나타나서 실패를 알아채기까지 걸리는 시간의 큰 몫을 차지했다. 이 점에서 사용자 코드의 문법 오류나 설정 오류처럼 대개 10분 안에 드러나는 실패와 달랐다."},"updated_at":"2026-11-14T12:34:23.063267Z","url":"https://benchlet.com/incidentlib/app/cases/IL-0585","org_slug":"microsoft"}