고성능 병렬 하드웨어를 활용한 나노입자 전이 행렬 코드 구현
초록
본 논문은 나노입자 집합의 전자기 산란·흡수를 정확히 계산하기 위해, 기존 T‑matrix 방법을 고성능 멀티코어·멀티스레드 환경에 최적화한 NP_TMcode를 소개한다. 알고리즘 구조와 병렬화 전략을 상세히 설명하고, 다양한 입자 집합 모델에 대한 성능 테스트 결과, 계산 속도가 기존 구현 대비 수십 배 가량 향상됨을 입증한다.
상세 분석
NP_TMcode는 전이 행렬(T‑matrix) 형식의 핵심 수식들을 고차원 선형 시스템으로 전환한 뒤, 행렬 연산을 MPI 기반 프로세스 분산과 OpenMP 기반 스레드 병렬화로 동시에 수행한다. 특히, 구형 단위 입자(모노머)들의 상호작용을 기술하는 M‑행렬을 블록‑대각 형태로 재구성하여 메모리 접근 패턴을 최적화하고, BLAS/LAPACK의 고성능 구현을 활용해 역행렬 연산을 가속한다. 코드 구조는 크게(1) 입력 파라미터 파싱 및 입자 배치 생성, (2) 다중극자 전개와 번역 연산을 담당하는 모듈, (3) 전이 행렬 구축 및 선형 시스템 해석, (4) 산란·흡수 효율 및 비대칭 파라미터 계산, (5) 결과 출력 및 시각화 단계로 나뉜다.
알고리즘 최적화 포인트는 다음과 같다. 첫째, 입자 간 거리와 크기에 따라 필요한 다중극자 차수(l_max)를 자동 조정함으로써 불필요한 고차항 계산을 억제한다. 둘째, 번역 행렬 J(p p′)와 상호산란 행렬 H(p p′)를 사전 계산하고, 대칭성을 이용해 저장 공간을 절반으로 감소시킨다. 셋째, MPI 프로세스 간에 M‑행렬 블록을 균등하게 분배하고, 각 프로세스 내부에서는 OpenMP 스레드가 블록 내 연산을 병렬 처리하도록 설계했다. 넷째, 행렬 조건수가 크게 증가하는 경우를 대비해 사전 조건(preconditioner) 기반 GMRES 반복법을 도입, 수렴 속도를 크게 향상시켰다.
성능 평가에서는 (a) 단일 구형 입자, (b) 10~100개의 동일 반경 구형 입자 집합, (c) 비균일 반경·복합 굴절률을 갖는 프랙탈 집합 등 세 가지 시나리오를 설정했다. 실험 결과, 32코어·256GB RAM 워크스테이션에서 평균 15배, 256코어·1TB RAM 클러스터에서는 70배 이상의 속도 향상을 기록했다. 또한, 메모리 사용량은 블록‑분할 전략 덕분에 입력 입자 수가 10,000개 수준에서도 64GB 이하로 유지되었다. 정확도 검증을 위해 전통적인 Mie 해와 기존 단일‑코어 T‑matrix 구현과 비교했으며, 상대 오차는 10⁻⁸ 이하로 동일함을 확인했다.
이러한 결과는 나노입자 집합의 복잡한 형태와 다중 산란 효과를 실시간 혹은 준실시간으로 모델링할 수 있는 길을 열어준다. 특히, 천문학적 환경(예: 성간 먼지, 외계 행성 대기 에어로졸)이나 재료 과학(예: 나노복합체, 플라즈몬 구조)에서 파라미터 스페이스 탐색이 필요한 경우, NP_TMcode는 기존 방법에 비해 실용적인 계산 시간을 제공한다는 점에서 큰 의미를 가진다.
댓글 및 학술 토론
Loading comments...
의견 남기기