HPC 클러스터 운영: SLURM 스케줄링과 InfiniBand 네트워크

HPC 클러스터의 노드 구성, SLURM 워크로드 관리, InfiniBand와 RDMA 통신, 운영·보안 관리 항목을 정리한다.

2026-08-14 · 최초 발행 2026-01-19

과학계산 클러스터를 움직이는 기반

고성능 컴퓨팅(HPC)은 복잡한 과학계산, 시뮬레이션, 빅데이터 분석처럼 큰 연산 능력이 필요한 작업을 처리하는 컴퓨팅 환경이다. 수백에서 수천 개의 컴퓨팅 노드를 클러스터로 묶고, 워크로드 관리와 초고속 네트워크를 결합해 테라플롭스(TFLOPS)에서 페타플롭스(PFLOPS) 수준의 성능을 제공한다. 일기예보, 신약개발, 우주탐사 시뮬레이션이 이런 환경의 대표적인 활용 분야다.

클러스터는 연산 서버를 많이 모으는 데서 끝나지 않는다. 작업을 어느 노드에 배치할지 정하고, 노드 사이의 데이터 이동을 줄이며, 공유 스토리지와 관리 경로를 안정적으로 유지해야 한다.

컴퓨트 노드와 제어 경로를 분리한 클러스터

HPC 클러스터에는 실제 연산을 수행하는 컴퓨트 노드와 운영 제어를 담당하는 헤드 노드가 있다. 컴퓨트 노드는 수십 대에서 수천 대까지 확장할 수 있으며, 헤드 노드는 클러스터 관리, 작업 스케줄링, 사용자 접속을 맡는다.

대용량 데이터를 여러 노드에서 함께 다루기 위해 Lustre, GPFS 등의 병렬 파일 시스템을 공유 스토리지로 사용한다. 노드 간 고속 통신은 InfiniBand나 Omni-Path 같은 전용 인터커넥트가 담당하고, 시스템 관리와 모니터링은 별도의 관리 네트워크로 분리한다.

사용자 접속헤드 노드작업 스케줄러컴퓨트 노드 Pool노드 1노드 2노드 NInfiniBand 네트워크병렬 파일 시스템관리 네트워크

컴퓨트 노드는 고성능 연산을 전제로 설계된다. Intel Xeon, AMD EPYC 등의 멀티코어 CPU를 사용하고, NVIDIA GPU(CUDA), AMD GPU, Intel Phi 같은 병렬처리 가속기를 붙일 수 있다. 메모리는 수백 GB에서 테라바이트급 RAM으로 구성하며, SSD 기반 로컬 스토리지는 고속 임시 저장공간으로 사용한다. 네트워크 연결에는 InfiniBand HCA(Host Channel Adapter) 또는 고속 이더넷 어댑터가 쓰인다.

SLURM이 자원과 작업 큐를 다루는 방식

SLURM(Simple Linux Utility for Resource Management)은 HPC 클러스터에서 널리 사용하는 오픈소스 작업 스케줄러다. 컴퓨트 노드의 CPU, 메모리, GPU를 작업별로 동적 할당하고, 대기 작업을 우선순위와 정책에 따라 관리한다. 스케줄링 알고리즘으로 자원 배분을 조정하며, 사용자와 프로젝트 단위의 자원 사용을 추적하고 제한할 수 있다.

사용자srun/sbatchslurmctld(컨트롤러)slurmdbd(데이터베이스)slurmd(노드1)slurmd(노드2)slurmd(노드N)작업 실행작업 실행작업 실행

중앙의 slurmctld는 작업 스케줄링과 자원 할당을 결정한다. 각 컴퓨트 노드에서는 slurmd가 에이전트로 동작하면서 작업을 실행하고 모니터링한다. slurmdbd는 계정 정보와 작업 이력을 관리하는 데이터베이스 데몬이다.

작업 제출부터 상태 확인, 취소, 노드 조회까지는 다음 명령으로 처리한다.

# 배치 작업 제출
sbatch job_script.sh

# 대화형 작업 실행
srun -N 4 -n 16 ./my_program

# 작업 상태 확인
squeue -u username

# 작업 취소
scancel job_id

# 노드 상태 확인
sinfo

# 상세 노드 정보
scontrol show node node_name

배치 작업은 필요한 노드와 태스크, 실행 시간, 파티션, 출력 경로를 스크립트에 명시해 제출할 수 있다.

#!/bin/bash
#SBATCH --job-name=my_job
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=16
#SBATCH --time=24:00:00
#SBATCH --partition=compute
#SBATCH --output=output_%j.txt

module load mpi/openmpi
mpirun ./my_parallel_app

SLURM은 노드를 용도별로 묶은 파티션으로 자원을 나눈다. 예를 들어 gpu, highmem, debug 같은 구분을 둘 수 있다. QoS(Quality of Service)는 우선순위, 자원 제한, 실행 시간 제한을 정의하며, 예약 기능으로 특정 시간대의 자원을 미리 배정할 수 있다. 조직과 프로젝트별 자원 할당량은 계정 계층(Account Hierarchy)으로 관리한다.

InfiniBand와 RDMA가 줄이는 통신 경로

InfiniBand는 HPC에서 표준으로 사용되는 초고속 저지연 네트워크 기술이다. EDR(100Gbps), HDR(200Gbps), NDR(400Gbps)처럼 세대별 대역폭이 향상됐고, 지연시간은 서브 마이크로초(< 1μs) 수준이다. RDMA(Remote Direct Memory Access)를 지원해 CPU 오버헤드를 최소화하며, Fat-Tree나 Dragonfly 같은 고성능 네트워크 토폴로지를 구성할 수 있다.

애플리케이션ULP(Upper Layer Protocol)IPoIB, SDP, MPIRDMA Verbs APIInfiniBand Transport LayerInfiniBand Network LayerInfiniBand Link LayerInfiniBand Physical LayerHCA Hardware

RDMA의 핵심은 CPU가 개입하지 않은 상태에서 원격 메모리에 직접 접근하는 데 있다. Zero-Copy는 데이터가 커널 버퍼를 거치지 않고 전송되는 방식이며, Kernel Bypass는 시스템 콜 오버헤드 없이 애플리케이션이 네트워크를 직접 제어하도록 한다. 통신 방식으로는 전통적인 Send/Receive와 원격 노드 메모리를 직접 읽고 쓰는 RDMA Read/Write가 있다.

MPI(Message Passing Interface)는 InfiniBand 기반의 고성능 병렬 통신에 사용된다. OpenMPI와 MVAPICH는 InfiniBand RDMA를 네이티브로 지원한다. MPI_SendMPI_Recv 같은 Point-to-Point 통신은 RDMA로 최적화할 수 있고, MPI_Bcast, MPI_Reduce 등의 Collective 통신에는 InfiniBand 하드웨어 기능을 활용할 수 있다. GPUDirect RDMA는 GPU 메모리와 InfiniBand 사이의 직접 통신으로 성능을 극대화한다.

운영에서 함께 봐야 할 신호

클러스터 상태는 CPU, 메모리, GPU 활용도를 중심으로 추적한다. InfiniBand 트래픽, 에러율, 링크 상태를 통해 네트워크 성능을 확인하고, 큐에 대기 중인 작업의 평균 대기시간도 분석 대상이다. 병렬 파일 시스템의 읽기와 쓰기 성능은 스토리지 I/O 지표로 측정한다.

Ganglia는 분산 클러스터 모니터링 시스템이며, Prometheus + Grafana는 시계열 데이터 수집과 시각화에 사용된다. Nagios는 시스템 상태 알림과 장애 감지를 맡고, IBDiagNet은 InfiniBand 네트워크 진단 도구다.

성능 조정에서는 CPU와 메모리의 로컬리티를 고려하는 NUMA 프로세스 바인딩, InfiniBand 파라미터와 토폴로지 조정, 병렬 파일 시스템 스트라이핑과 버퍼링 설정을 살핀다. 유휴 노드의 전력을 절약하고 Dynamic Frequency Scaling을 적용하는 전력 관리도 대상이다.

안정적인 운영을 위해 하드웨어 오류와 응답 없음 같은 노드 장애를 자동으로 감지해야 한다. 작업 체크포인트는 장애가 발생했을 때 중단 시점부터 재시작하도록 돕고, 헤드 노드 이중화와 자동 페일오버는 제어 경로의 장애에 대응한다. 메모리 테스트, 디스크 검사, 네트워크 진단은 정기 점검 항목이다.

접근 제어에는 SSH 키 기반 인증과 방화벽 설정을 사용한다. InfiniBand 네트워크는 관리 네트워크와 분리하고, LDAP/AD 연동과 그룹별 권한 관리로 계정을 관리한다. 사용자 작업 이력과 시스템 변경 기록은 감사 로그로 추적한다.

엑사스케일과 클라우드로 넓어지는 HPC

차세대 HPC는 엑사플롭스(10^18 FLOPS) 성능을 목표로 한다. CPU + GPU + FPGA를 통합하는 이기종 아키텍처와 HBM, NVM 같은 새로운 메모리 기술이 활용된다. 엑사스케일 시스템의 전력 소비는 20-30MW 이내로 제한하는 방향이며, 이를 위해 새로운 프로그래밍 모델과 런타임 최적화가 요구된다.

클라우드에서도 HPC 활용이 확대되고 있다. AWS ParallelCluster, Azure CycleCloud, Google HPC Toolkit은 HPC 클라우드 도구이며, 온프레미스 클러스터와 클라우드 자원을 함께 쓰는 버스트 컴퓨팅이 가능하다. Singularity와 Docker는 HPC 애플리케이션의 컨테이너 배포에 쓰이고, AWS Batch 같은 관리형 HPC 서비스는 서버리스 HPC 방식으로 활용할 수 있다.

HPC의 성능은 컴퓨트 자원, 작업 스케줄링, 인터커넥트, 스토리지, 운영 관리가 맞물릴 때 나온다. 엑사스케일 환경과 클라우드 통합은 이기종 컴퓨팅을 전제로 이러한 구성 요소의 역할을 더 밀접하게 연결하고 있다.

HPCSLURMInfiniBand클러스터 관리병렬처리