GPU 기반 클러스터에서 일반 목적 분자동역학 시뮬레이션 가속화
초록
본 논문은 LAMMPS의 CUDA 패키지를 구현하여 CPU 전용 버전 대비 5배~13배의 단일 노드 속도 향상을 달성하고, MPI와 연계한 다중 GPU 시뮬레이션을 지원한다. 셀 리스트와 이웃 리스트 두 가지 접근법을 비교·최적화하고, 저이웃 수에서는 원자당 스레드(TpA), 고이웃 수에서는 블록당 원자(BpA) 방식을 적용한다. 다양한 물질(생체분자, 고분자, 금속, 반도체)에서 성능을 검증했으며, 128개의 듀얼 GPU 노드까지 강·약 스케일링 결과를 제시한다.
상세 분석
이 연구는 LAMMPS라는 오픈소스 MD 엔진에 CUDA 기반 가속기를 통합함으로써, 기존 CPU‑only 구현과 비교해 5~13배의 속도 향상을 실현하였다. 핵심 설계 목표는 “기능 보존·속도 극대화·확장성 확보·코드 변경 최소화”이며, 이를 위해 GPU 전용 패키지(USER‑CUDA)를 별도 모듈로 구현하고, 기존 LAMMPS 스크립트와 거의 동일하게 사용할 수 있도록 설계하였다.
GPU 구현에서 가장 큰 난관은 데이터 전송 비용과 메모리 접근 패턴이었다. 저자들은 가능한 모든 연산을 GPU에서 수행하도록 하여 호스트‑GPU 간 전송을 최소화했으며, 메모리 대역폭·연산 성능 비율이 낮은 GPU 특성을 고려해 두 가지 힘 계산 전략을 도입하였다.
-
셀 리스트(Cell List) 방식 – 시뮬레이션 박스를 작은 셀로 분할하고, 각 셀을 CUDA 블록에 매핑한다. 셀당 원자 수를 32의 배수로 맞추어 워프 효율을 높였으며, 뉴턴 제3법칙을 이용해 인접 셀 간 계산을 절반으로 줄였다. 쓰기 충돌을 방지하기 위해 셀을 6(2D)·18(3D)개의 비간섭 그룹으로 나누어 순차적으로 실행한다. 공유 메모리를 활용해 인접 셀 원자 위치를 캐시함으로써 전역 메모리 접근을 감소시켰다.
-
이웃 리스트(Neighbor List) 방식 – 두 가지 세부 구현을 비교하였다.
- TpA (Thread‑per‑Atom): 각 원자당 하나의 스레드가 모든 이웃을 순회한다. 구현이 단순하고 스레드당 로드가 적어 작은 이웃 수에서 효율적이다.
- BpA (Block‑per‑Atom): 하나의 원자를 블록 단위로 할당하고, 블록 내 스레드가 이웃을 분할해 처리한다. 이 방식은 이웃 수가 많을수록 메모리 지역성을 높이고, 텍스처 캐시 활용도가 상승한다. 다만 감소 연산(reduction) 비용이 추가된다.
실험 결과, 짧은 절단 반경(예: LJ 2.5σ)에서는 TpA가 30% 정도 빠르고, 절단 반경이 커질수록 BpA가 30% 정도 우세해, 절단 거리와 하드웨어 특성에 따라 동적으로 선택하도록 자동 벤치마크를 삽입하였다.
성능 평가에서는 단일 GPU에서 26개의 포스 스타일, PPPM 장거리 전하, NVE/NVT/NPT 적분기, 다양한 고정(fix) 기능을 모두 GPU에서 실행했으며, 단일 정밀도와 배정밀도, 혼합 정밀도 모드도 지원한다. 테스트 시스템은 금속(Al), 반도체(Si), 고분자(PE), 바이오분자(단백질) 등으로, 각각 10⁶10⁸ 원자 규모에서 513배 가속을 기록했다.
멀티 GPU 확장성 실험에서는 MPI를 이용해 노드 간 통신을 수행하고, 각 노드의 두 GPU가 동시에 작업하도록 설계하였다. 최대 128개의 듀얼 GPU 노드(총 256 GPU)까지 강한 스케일링(고정 문제 크기)과 약한 스케일링(문제 크기 증가) 모두에서 80% 이상 효율을 유지하였다. 이는 GPU 간 통신 오버헤드가 비교적 낮고, 계산-통신 겹침(overlap)이 효과적으로 구현된 결과이다.
또한, 기존 GPU‑MD 패키지(HOOMD, AceMD, GPU‑LAMMPS “GPU” 패키지 등)와 비교했을 때, LAMMPS‑CUDA는 기능 면에서 가장 포괄적이며, 특히 복합 포스 스타일(다중 포텐셜, 결합·각·다이헤드·임프레션)와 다양한 고정(fix) 기능을 그대로 활용할 수 있다는 점이 큰 장점이다.
전체적으로 이 논문은 GPU 기반 HPC 환경에서 전통적인 CPU‑중심 MD 시뮬레이션을 대체할 수 있는 실용적인 솔루션을 제공한다. 설계 철학이 “기능 보존 + 최소 변경”에 초점을 맞추어, 기존 LAMMPS 사용자들이 별도 코드 수정 없이 GPU 가속을 활용할 수 있게 함으로써, 연구 생산성을 크게 향상시킨다.
댓글 및 학술 토론
Loading comments...
의견 남기기