HPC & GPU Engineering/AI Infrastructure Engineer

[HPC/GPU 클러스터 운영 Linux Deep Dive 1편] 리눅스 커널 구조와 HPC 환경에서의 튜닝 포인트 – 고성능을 위한 OS 기반 최적화

ygtoken 2025. 8. 12. 10:57
728x90

 

리눅스 커널 구조를 이해해야 하는 이유

 
HPC(High-Performance Computing) 환경에서 커널은 단순한 OS의 일부가 아니라, 모든 계산과 데이터 흐름의 출발점이자 병목 지점입니다.
GPU와 CPU의 협업, 스토리지 I/O, 네트워크 전송, 스케줄러 동작까지 모두 커널 레벨에서 시작되기 때문에, 커널 구조를 이해하지 못하면 성능 최적화는 불가능합니다.
 
특히 HPC 환경은 일반 서버 워크로드와 달리 고도의 연산 집중형 작업대량의 데이터 이동이 동시에 발생합니다. 따라서 커널 튜닝 포인트를 미리 설계하면 잡 대기 시간을 줄이고, 자원 활용률을 높이며, 장애 대응 속도까지 개선할 수 있습니다.
 


 

리눅스 커널의 기본 구조

그림 1) 리눅스 커널의 기본 구조

 
 
리눅스 커널은 크게 네 가지 주요 서브시스템으로 구성됩니다.

서브시스템역할HPC 연관성
프로세스 관리(Process Management)프로세스 생성, 스케줄링, 동기화 관리Slurm 잡 실행/종료, 멀티스레드 성능
메모리 관리(Memory Management)물리/가상 메모리, 페이지 캐시 관리GPU 메모리 전송, NUMA 성능
파일시스템(VFS)다양한 파일시스템 인터페이스 제공Lustre/BeeGFS, 병렬 I/O
네트워크 스택(Network Stack)TCP/IP, RDMA 통신 처리InfiniBand, NVLink-Over-Fabric

이 네 가지는 독립적으로 보이지만, HPC 워크로드에서는 동시에 긴밀히 작동합니다. 예를 들어, Slurm이 잡을 배치할 때 프로세스 관리 → 메모리 할당 → 네트워크 초기화가 순차적으로 호출됩니다.
 
 
 
 


 

HPC 환경에서 주목해야 할 커널 기능

 
 

1. NUMA(Non-Uniform Memory Access) 지원

 
NUMA는 다중 CPU 소켓 환경에서 메모리 접근 속도를 최적화합니다.
HPC 환경에서 CPU 바인딩(--cpu-bind)과 메모리 바인딩(--mem-bind)은 Slurm 스케줄링의 핵심 요소이며, NUMA 토폴로지 이해가 필수입니다.

# NUMA 노드와 메모리 구성 확인
numactl --hardware

 


 

2. HugePages

 
HugePages는 메모리 페이지 크기를 기본 4KB에서 수 MB 단위로 확장해 **TLB 미스(TLB Miss)**를 줄입니다.
대규모 행렬 연산, 딥러닝 학습 등에서는 성능 차이가 수십 퍼센트까지 벌어질 수 있습니다.

# 현재 HugePages 설정 확인
cat /proc/meminfo | grep Huge

 


 

3. I/O 스케줄러

 
HPC I/O는 순차 접근보다는 병렬 접근이 많기 때문에, 스토리지 성격에 맞는 I/O 스케줄러 선택이 중요합니다.
예: Lustre/BeeGFS → noop 또는 mq-deadline이 유리.

# I/O 스케줄러 확인
cat /sys/block/sda/queue/scheduler

 


 

4. 커널 모듈 관리

 
GPU 드라이버(NVIDIA, ROCm), InfiniBand 드라이버(mlx5_core 등)는 커널 모듈 형태로 로드됩니다. 모듈 버전과 커널 버전 호환이 깨지면 HPC 노드 전체가 비정상 동작할 수 있습니다.

# 로드된 커널 모듈 확인
lsmod | grep nvidia

 


 

튜닝 포인트와 적용 전략

튜닝 영역설정 포인트기대 효과
NUMACPU/메모리 바인딩 정책 설계메모리 접근 지연 최소화
HugePagesTransparent HugePages 비활성 + Static HugePages 설정메모리 대역폭 효율 향상
I/O 스케줄러워크로드별 맞춤 선택스토리지 병목 완화
네트워크 스택TCP Congestion Control, RDMA 튜닝노드 간 전송 지연 최소화
커널 파라미터/etc/sysctl.conf 최적화컨텍스트 스위칭 비용 감소

 


 

HPC 환경에서의 적용 사례

  • AI 학습 클러스터: NUMA 바인딩 적용 후 GPU-CPU 간 메모리 대역폭 18% 향상
  • 기상 예측 HPC: Static HugePages로 전환 후 메모리 TLB 미스율 절반으로 감소
  • 제약연구 시뮬레이션: mq-deadline I/O 스케줄러 적용으로 I/O Wait 시간 30% 단축

 


 

실무 팁과 주의사항

# 커널 파라미터 변경 (예: 파일 디스크립터 수 제한 증가)
sysctl -w fs.file-max=2097152

 

  • 커널 튜닝 전에는 벤치마크 전/후 비교 필수
  • GPU 드라이버·InfiniBand 드라이버는 커널 버전 업데이트 시 재빌드 필요
  • NUMA 정책은 Slurm 설정과 반드시 연동 (SelectTypeParameters=CR_Core_Memory 등)

 


 

정리하며

리눅스 커널은 HPC 성능 최적화의 뼈대입니다.
NUMA, HugePages, I/O 스케줄러, 네트워크 스택 등 핵심 기능을 이해하고 튜닝하면, Slurm 스케줄러와 GPU 인프라가 가진 성능을 최대한 끌어낼 수 있습니다.
다음 단계로는 프로세스 스케줄링 알고리즘을 살펴보면서, CPU·GPU 자원을 더욱 효율적으로 활용하는 방법을 다룰 예정입니다.
 

728x90