1P by GN⁺ 3시간전 | ★ favorite | 댓글과 토론
  • 바르셀로나 카탈루냐 공대의 MareNostrum V는 세계 15대 슈퍼컴퓨터 중 하나로, 8,000개 노드에 걸쳐 분산 컴퓨팅을 수행하는 €2억 규모의 공공 연구 인프라
  • 단일 고성능 컴퓨터가 아니라 수천 대의 독립 컴퓨터가 InfiniBand NDR200 팻트리 토폴로지로 연결된 분산 시스템이며, 어떤 노드든 동일한 최소 지연 시간으로 통신 가능
  • 작업 제출은 SLURM 워크로드 매니저를 통해 이루어지며, 리소스 요청·시간 제한·프로젝트 예산을 명시한 배치 스크립트로 스케줄러에 작업을 큐잉
  • 외부 인터넷 접속이 차단된 에어갭 환경에서 운영되므로, 필요한 라이브러리와 데이터셋을 사전에 준비해야 하며 컴퓨팅보다 결과 추출이 병목이 되기도 함
  • 연구자에게 무료로 제공되는 공공 자원으로, 스페인 기관은 RES를 통해, 유럽 전역은 EuroHPC 공동사업의 정기 공모를 통해 접근 가능

아키텍처: 네트워크가 곧 컴퓨터

  • HPC에서 가장 큰 오해는 하나의 초강력 컴퓨터를 빌리는 것이라는 인식이며, 실제로는 수천 대의 독립 컴퓨터에 작업을 분산 제출하는 구조
  • 분산 컴퓨팅에서 GPU가 데이터 전송 대기로 유휴 상태가 되는 문제를 방지하기 위해, MareNostrum V는 InfiniBand NDR200 패브릭을 팻트리(fat-tree) 토폴로지로 구성
    • 일반 네트워크에서는 여러 컴퓨터가 같은 스위치를 공유할 때 대역폭 병목 발생
    • 팻트리 토폴로지는 네트워크 계층 상위로 갈수록 링크 대역폭을 증가시켜 비차단(non-blocking) 대역폭 보장
    • 8,000개 노드 중 어떤 노드든 동일한 최소 지연 시간으로 통신 가능

컴퓨팅 파티션 구성

  • 범용 파티션(GPP): 고도 병렬 CPU 작업용으로 설계, 6,408개 노드에 각 112개 Intel Sapphire Rapids 코어 탑재, 합산 피크 성능 45.9 PFlops
  • 가속 파티션(ACC): AI 훈련, 분자 동역학 등 특수 용도로 설계, 1,120개 노드에 각 4개 NVIDIA H100 SXM GPU 탑재, 피크 성능 260 PFlops
    • 단일 H100 소매가 약 25,000달러 기준, GPU 비용만 1억 1,000만 달러 초과
  • 로그인 노드(Login Nodes): SSH 접속 시 최초 진입 지점으로, 파일 이동·코드 컴파일·작업 스크립트 제출 등 경량 작업 전용이며 컴퓨팅용이 아님

양자 인프라

  • MareNostrum 5에는 스페인 최초의 양자 컴퓨터가 물리적·논리적으로 통합
    • 디지털 게이트 기반 양자 시스템과 초전도 큐비트 기반 양자 어닐러 MareNostrum-Ona 포함
  • 양자 처리 장치(QPU)는 클래식 슈퍼컴퓨터를 대체하는 것이 아니라 특화된 가속기 역할
  • H100 GPU로도 처리하기 어려운 최적화 문제나 양자 화학 시뮬레이션을 양자 하드웨어에 오프로드하여, 대규모 하이브리드 클래식-양자 컴퓨팅 파워하우스 구현

에어갭, 쿼터, HPC 운영 현실

  • 에어갭(Airgap): 외부에서 SSH로 접속 가능하지만, 컴퓨트 노드는 외부 인터넷 접속 불가
    • pip install, wget, 외부 HuggingFace 리포지토리 연결 등 불가능
    • 스크립트에 필요한 모든 것을 사전에 다운로드·컴파일하여 스토리지 디렉터리에 준비 필수
    • 관리자가 module 시스템을 통해 대부분의 라이브러리와 소프트웨어 제공
  • 데이터 이동: 로그인 노드를 통해 scp 또는 rsync로 데이터 입출력 수행
    • 실제 계산이 매우 빠르기 때문에, 완료된 결과를 로컬 머신으로 추출하는 과정이 병목이 되기도 함
  • 제한 및 쿼터: 프로젝트별로 특정 CPU 시간 예산 할당, 단일 사용자의 동시 실행·대기 작업 수에 하드 리밋 존재
    • 모든 작업에 엄격한 wall-time 제한 지정 필수
    • 요청 시간을 1초라도 초과하면 스케줄러가 프로세스를 즉시 종료
  • 로깅: 작업 제출 후 라이브 터미널 출력 없이, 모든 stdoutstderr가 로그 파일(예: sim_12345.out, sim_12345.err)로 자동 리디렉션
    • 작업 완료 또는 크래시 후 텍스트 파일을 검토하여 결과 확인·디버깅 수행
    • squeue 또는 tail -f로 제출된 작업 상태 모니터링 가능

SLURM 워크로드 매니저

  • 연구 할당 승인 후 SSH 로그인하면 완전히 평범한 Linux 터미널 프롬프트가 나타남
  • 수천 명의 연구자가 동시에 사용하므로, 터미널에서 직접 무거운 스크립트를 실행하면 로그인 노드가 다운되고 시스템 관리자로부터 경고 메일 수신
  • SLURM(Simple Linux Utility for Resource Management): 오픈소스 작업 스케줄링 소프트웨어로, 배시 스크립트에 필요한 하드웨어·소프트웨어 환경·실행 코드를 명시하면 큐에 넣고, 하드웨어 확보 시 실행 후 노드 해제
  • 주요 #SBATCH 디렉티브:
    • --nodes: 필요한 물리 머신 수
    • --ntasks: 생성할 MPI 프로세스(태스크) 총 수, SLURM이 노드 간 분배 처리
    • --time: 엄격한 wall-clock 시간 제한, 초과 시 즉시 종료
    • --account: CPU 시간이 차감될 프로젝트 ID
    • --qos: Quality of Service 또는 특정 큐 지정(예: debug 큐는 빠른 접근 제공하되 짧은 런타임 제한)

실전 예시: OpenFOAM 스위프 오케스트레이션

  • ML 서로게이트 모델로 공기역학적 다운포스를 예측하기 위해, 50개의 서로 다른 3D 메시에 대해 50건의 고정밀 CFD(전산유체역학) 시뮬레이션 수행 필요
  • 범용 파티션에서 단일 OpenFOAM CFD 케이스에 대한 SLURM 작업 스크립트 예시:
    • --nodes=1, --ntasks=6, --time=00:30:00 등으로 리소스 지정
    • module load OpenFOAM/11-foss-2023a로 환경 로드
    • srun --mpi=pmix로 surfaceFeatureExtract, blockMesh, decomposePar, snappyHexMesh, potentialFoam, simpleFoam, reconstructPar 순차 실행
  • 50건을 수동 제출하는 대신 SLURM 의존성(dependency) 을 사용해 각 작업을 이전 작업 뒤에 체이닝
    • sbatch --dependency=afterany:$PREV_JOB_ID로 50개 작업을 수초 내 큐에 등록
    • 다음 날 아침까지 50건의 공기역학 평가가 처리·로깅 완료, ML 훈련용 텐서 변환 준비 완료

병렬화 한계: Amdahl의 법칙

  • 노드당 112코어가 있는데 CFD 시뮬레이션에 6태스크만 요청한 이유는 Amdahl의 법칙 때문
  • 모든 프로그램에는 병렬화 불가능한 직렬 부분(serial fraction) 이 존재하며, 이론적 속도 향상은 이 직렬 비율에 의해 엄격히 제한
    • 수식: S = 1 / ((1−p) + p/N), S는 전체 속도 향상, p는 병렬화 가능 비율, N은 프로세서 코어 수
    • 코드의 5%만 직렬이라도 MareNostrum V의 모든 코어를 사용해도 최대 이론 속도 향상은 20배
  • 너무 많은 코어에 태스크를 분할하면 InfiniBand 네트워크를 통한 통신 오버헤드 증가
    • 코어 간 경계 조건 전달에 실제 계산보다 많은 시간을 소비하면, 하드웨어 추가가 오히려 속도 저하 유발
  • 소규모 시스템(N=100) 시뮬레이션 시 16스레드 이후 런타임 증가, 대규모(N=10k+)에서만 하드웨어가 완전히 생산적
  • 슈퍼컴퓨터용 코드 작성은 컴퓨트 대 통신 비율 관리의 연습

접근 방법

  • 하드웨어 비용에도 불구하고 MareNostrum V 접근은 연구자에게 무료이며, 컴퓨트 시간은 공공 자금 지원 과학 자원으로 취급
  • 스페인 기관 소속 연구자는 스페인 슈퍼컴퓨팅 네트워크(RES) 를 통해 신청 가능
  • 유럽 전역 연구자는 EuroHPC 공동사업의 정기 접근 공모를 통해 신청 가능
    • "Development Access" 트랙은 코드 포팅이나 ML 모델 벤치마킹 프로젝트를 위해 설계되어 데이터 사이언티스트에게 접근성 높음