PLEXsim
멀티노드 GPU 사용을 극대화한 고성능 수치연산 소프트웨어
토카막 기반 핵융합 연구의 핵심인 플라즈마 제어를 TOP 10 슈퍼컴퓨터를 이용하여 가상으로 실험, 개발 및 테스트 중입니다. 복잡한 수치연산 알고리즘을 순수 Python 프로그래밍 언어를 이용하여 빠른 속도로 개발하였습니다.
farmdure
핵융합 난제 해결을 위한 디지털 트윈 개발
과학기술정보통신부에서 추진하는 과학난제도전 융합연구개발사업 중 하나인 구형토카막(ST) 핵융합메타웨어 연구단에 속해 핵융합로를 컴퓨터로 모사(simulate)하는 연구를 하고 있습니다. 구형 핵융합로의 시뮬레이션을 통해 최적화된 플라즈마 파라미터를 찾는 작업은 여러 가지 외부 조건이나 불안정성 등에 의해 계산상의 복잡도가 매우 높습니다.
본사에서는 고사양의 슈퍼컴퓨터(High performance supercomputer)를 사용하여 토카막 형태에서 작동하는 6-D PIC 코드를 개발하고 있습니다. 이러한 고난도 시뮬레이션 소프트웨어를 개발하는 데에는 그 개발 단계부터 각종 최적화가 뒷받침되어야 하며, 특히 시뮬레이션 소프트웨어가 사용할 고성능 하드웨어의 제원을 고려하여 이에 적합한 프로그래밍을 하여야만 비로소 슈퍼컴퓨터의 성능을 활용하는 시뮬레이션을 구현하였다 할 수 있습니다. 본사는 다년간 축적한 알고리즘 최적화 기술력을 바탕으로 고성능 GPU/CPU의 제원을 십분 활용하는 코드를 개발함으로써 구형 토카막 내의 플라즈마 입자들을 모사하는 시뮬레이션 소프트웨어를 개발하고 있습니다.
최적화 알고리즘
최적화된 프로그램 개발을 위해 GPU 장치의 각 core들에서 병렬 연산을 하고 있으며 프로그램을 구성하는 각 작업에 대해 비동기처리, 병렬화 등 다양한 최적화 기법을 도입하고 있습니다. 또한 I/O로 인한 부하, CPU/GPU간의 불필요한 통신을 최소화하고 Shared Memory 같은 기능을 적극 활용하여 프로그램의 성능을 많은 부분 발전시켰습니다.

최적화 기법의 한 예로 동적 로드 밸런싱(Dynamic Load Balancing) 알고리즘을 적용하고 있습니다. 특정 계산 노드에 많은 입자가 모이지 않도록 자동으로 분산시켜 주는 기능입니다. 각 계산 노드는 공간 채움 곡선인 hilbert curve를 따라 cell 단위로 계산 영역을 분할하며, 지정된 사이클마다 노드 별 입자 수가 균등해지도록 영역을 재분할합니다(그림 1). 입자 수가 불균형할 경우 노드 별 연산 시간 차이로 생기는 지연을 줄이고 GPU 사용을 최적화합니다. 또한 입자 수가 메모리 허용량보다 넘쳐 생기는 문제를 예방합니다. 이 과정은 계산 노드들의 GPU에서 heterogeneous하게 이루어지는데, 이 때 CPU에서는 주요 병목 중 하나인 Field calculation 연산을 하고 있기 때문에 유휴 자원을 최대한 사용해 전체 성능을 크게 저하하지 않습니다.
farmdure
시뮬레이션 코드는 파이썬을 기반으로 빠른 개발과 높은 확장성을 갖도록 하고 있습니다. 그러면서도 많은 연산이 필요한 부분은 Numba, CUDA, CuPy, NumPy, SciPy 등 수치 연산에 최적화된 라이브러리를 사용하여 효율적으로 자원을 활용하고 있습니다. 파이썬 프로그래밍 언어로 개발된 코드는 CuPy 라이브러리에 의해 CUDA 코드로 변환되어 GPU에서 실행되거나, Numba 라이브러리에 의해 자동으로 머신 코드로 변환(JIT: Just-In-Time)되어 빠른 속도로 작동합니다.
farmdure
프로그램은 다양한 HPC 환경에서 사용될 수 있도록 Apptainer(소프트웨어 가상화 기술)을 사용하여 배포되는데, 복잡한 의존 소프트웨어 설치 없이 수월하게 사용할 수 있습니다.
시뮬레이션 결과는 openPMD (Open Standard for Particle-Mesh Data) 표준을 따르는 HDF-5파일로 생성됩니다. 이 규격은 많은 오픈소스 기반의 과학적 툴에서 사용되고 있어 ParaView 분석 소프트웨어를 이용해 간편하게 시각화할 수 있으며 다중 GPU를 사용해 대규모 데이터 분석도 가능합니다. pvserver를 사용해 서버에 저장된 데이터를 개인 컴퓨터에서 원격으로 쉽게 확인할 수 있어 분석을 위한 별도의 자원이 필요하지 않습니다.

시뮬레이션 진행 상황을 실시간으로 확인할 수 있도록 리치 텍스트기반의 CLI 툴을 제공하고 있습니다. 매 cycle 마다 각 계산 프로세스들은 MPI를 통해 상황을 취합해 입자 수, 총 에너지, 각 단계 별 소요 시간 등을 화면에 출력합니다. 이를 통해 GPU 메모리 문제를 조기에 예측할 수 있고 시뮬레이션 종료 시간을 예측할 수 있습니다.
farmdure
openPMD 파일로 저장된 결과를 ParaView 소프트웨어로 분석하는 화면 (좌: 토카막 단면 / 우: 3차원 입자 궤적)
주식회사 노트스퀘어 대표이사 이준혁
사업자등록번호| 402-88-00427
주소| 서울시 마포구 양화로 147, 6층 116호
통신판매업신고번호| 제2017-서울마포-1902호
이메일문의| support@notesquare.co.kr
© 2024 NOTESQUARE Co. ALL RIGHTS RESERVED.