왜 프로세스 스케줄링이 HPC 성능에 중요한가
HPC 환경에서 수백~수천 개의 프로세스가 동시에 실행될 때, CPU가 어떤 순서와 시간 배분으로 작업을 처리하느냐는 전체 워크로드의 성능과 안정성에 직결됩니다.
특히 GPU 클러스터에서는 CPU가 단순 연산뿐 아니라 GPU 데이터 전송, I/O 요청 처리, 통신 중계까지 담당하므로, 스케줄링 알고리즘 선택과 튜닝은 GPU 효율에도 직접적인 영향을 미칩니다.
리눅스의 주요 스케줄링 클래스
리눅스 커널은 크게 3가지 스케줄링 클래스를 제공합니다.
| 클래스설명 | 사용 | 예시 |
| CFS (Completely Fair Scheduler) | 일반 프로세스용 기본 스케줄러, 가중치 기반 시간 분배 | 대부분의 사용자 프로세스 |
| RT (Real-time) | SCHED_FIFO, SCHED_RR 지원, 우선순위 절대 보장 | 실시간 데이터 수집, 네트워크 패킷 처리 |
| Deadline | 태스크 마감 시간 보장, EDF(Earliest Deadline First) 기반 | 주기적 실시간 처리, 하드웨어 제어 |

CFS 스케줄러 구조와 동작
CFS는 **가상 런타임(virtual runtime)**을 기준으로 CPU 시간을 분배합니다.
우선순위가 높은 프로세스일수록 가상 런타임 증가 속도가 느려 더 자주 CPU를 점유합니다.
# 특정 PID의 스케줄링 정책 확인
chrt -p <PID>
HPC 워크로드에서 CFS를 사용하는 경우:
- 장점: 다양한 우선순위 작업이 공존 가능
- 단점: 긴 연산 작업이 중간에 잘게 쪼개져 문맥 전환 오버헤드 발생

Real-Time 스케줄링과 HPC
RT 스케줄링은 HPC 환경에서 다음과 같이 쓰입니다.
- 통신 지연 최소화: MPI 통신 스레드에 높은 우선순위를 부여
- 데이터 수집 안정성: 센서/네트워크 데이터 수집 스레드가 끊기지 않도록 보장
# SCHED_FIFO로 프로세스 실행
chrt --fifo 80 ./mpi_worker단, RT 태스크는 CPU를 독점할 수 있어 잘못 설정하면 다른 작업이 굶주리는(starvation) 문제가 생깁니다.
Deadline 스케줄링과 고정 주기 작업
Deadline 스케줄링은 “마감 시간 안에 처리 보장”이 핵심입니다.
GPU 데이터 전처리·전송을 주기적으로 해야 하는 경우 유용합니다.
# SCHED_DEADLINE 설정 예시
chrt --deadline 500000000 ./data_feeder
HPC에서의 프로세스 핀(Pinning)과 CPU 바인딩
스케줄링 알고리즘과 함께 CPU 바인딩은 HPC 성능 최적화의 필수 요소입니다.
예를 들어, NUMA 노드와 GPU를 1:1로 매핑하면 CPU↔GPU 메모리 전송 지연을 줄일 수 있습니다.
# CPU와 메모리 바인딩
numactl --cpunodebind=0 --membind=0 ./gpu_job
Slurm에서는 --cpu-bind, --mem-bind 옵션을 사용합니다.
srun --cpu-bind=cores --mem-bind=local ./gpu_job

알고리즘 선택이 HPC 워크로드에 미치는 영향
| 알고리즘 | HPC 장점 | HPC 단점 |
| CFS | 다양한 작업 혼합 가능 | 긴 작업이 자주 중단, 캐시 미스 증가 |
| RT | 통신/제어 작업 지연 최소화 | 잘못 설정 시 자원 독점 |
| Deadline | 주기적 태스크 보장 | 설정 복잡, 잘못된 주기 시 역효과 |
실무 적용 사례
- 대규모 AI 학습: GPU 통신 스레드에 RT 우선순위 부여 → 학습 속도 5% 향상
- 실시간 데이터 분석 HPC: Deadline 스케줄링으로 데이터 로드 안정성 확보
- 멀티 GPU 노드: NUMA 기반 CPU 핀으로 PCIe 병목 완화
실무 팁과 주의사항
# 현재 CPU 스케줄러 상태 확인
ps -eo pid,policy,rtprio,cmd
- RT 스케줄링은 꼭 필요한 스레드에만 적용
- CPU 바인딩은 NUMA 토폴로지와 GPU 배치를 고려
- Slurm과 연계 시, 파티션별 기본 스케줄링 정책을 문서화
정리하며
HPC 환경에서 프로세스 스케줄링은 단순히 CPU를 효율적으로 쓰는 문제를 넘어, GPU·네트워크·스토리지 전체 워크플로우를 최적화하는 기반이 됩니다.
다음 편에서는 NUMA 아키텍처와 CPU 바인딩 전략을 다루며, CPU·메모리·GPU 간의 물리적 거리를 고려한 최적화 방법을 심층 분석하겠습니다.