대규모 세포 시뮬레이션을 위한 고성능 확산 솔버
초록
본 논문은 기존 BioFVM 및 BioFVM‑X 라이브러리의 한계를 극복하고, MPI‑OpenMP 하이브리드 구조와 SIMD 벡터화를 적용한 BioFVM‑B를 제안한다. 3차원 확산‑감쇠 연산을 트라이디애고날 매트릭스 알고리즘(TDMA)으로 해결하면서 데이터 구조를 연속 메모리 4차원 배열로 재구성하고, 블록 기반 통신·연산 겹침을 통해 200배에 달하는 속도 향상과 메모리 사용량 36% 감소를 달성하였다.
상세 분석
본 연구는 세포 기반 멀티스케일 시뮬레이션에서 가장 비용이 많이 드는 확산‑감쇠 단계에 초점을 맞추었다. 기존 BioFVM은 OpenMP 기반 공유 메모리 병렬화만 지원했으며, 확산 연산을 x, y, z 각각에 대해 LOD(Locally One‑Dimensional) 방식으로 분해하고, 각 차원마다 독립적인 트라이디애고날 시스템을 TDMA로 해결한다. 이때 데이터는 “벡터‑오브‑벡터” 형태로 저장돼 메모리 접근 시 다중 간접 참조와 비연속 메모리 패턴을 야기한다. 이러한 구조는 대규모 분산 환경에서 캐시 효율을 크게 저하시켜 확장성에 병목을 만든다.
BioFVM‑B는 세 가지 핵심 개선을 도입한다. 첫째, 마이크로환경 데이터를 4차원 연속 배열(p_density_vectors)로 재구성함으로써 메모리 레이아웃을 최적화하고, 인덱싱 비용을 최소화했다. 이는 SIMD 명령어가 연속 메모리에서 다중 substrate와 y‑z 평면을 동시에 로드할 수 있게 하여 벡터 길이 잠재력을 극대화한다. 둘째, MPI 기반 1차원 도메인 분할에 블록(block) 개념을 도입하고, 비동기 MPI(Isend/Irecv)와 OpenMP 스레드를 결합해 통신‑연산 겹침을 구현했다. 블록 수는 노드 수와 상수 k(=factor)로 결정되는 휴리스틱 식(NB = k·nodes)으로 자동 조정되며, 이는 메시지 수와 계산 부하 사이의 균형을 자동으로 맞춘다. 셋째, TDMA 전·후 행 연산을 OpenMP와 SIMD으로 동시에 수행하도록 재구성했다. 특히 x‑차원 연산은 y·z·substrate 수만큼의 독립 시스템을 한 번에 벡터화할 수 있어, 메모리 대역폭 활용도가 가장 높다.
복잡도 분석에 따르면, 전체 연산량은 O(S·N³) (S: substrate 수, N: 한 변당 voxel 수)이며, 블록 기반 분산 처리와 SIMD 가속을 통해 실제 FLOP/s는 이론적 한계에 근접한다. 실험에서는 Marenostrum 5(AMD EPYC 7763, 64코어) 클러스터에서 1 k³ voxel, 10 substrate 케이스를 256노드까지 확장했을 때, BioFVM‑X 대비 평균 196배, 최고 200배의 속도 향상을 기록했다. 메모리 사용량은 연속 배열 덕분에 약 36% 절감되었으며, 이는 10¹² 셀 규모 시뮬레이션에서도 노드당 메모리 한계를 크게 완화한다.
이러한 설계는 트라이디애고날 시스템 자체가 본질적으로 순차적이라는 한계를 “시스템 수준 병렬화”가 아닌 “다중 시스템 병렬화”로 전환함으로써 해결한다. 또한, 블록 기반 통신은 MPI 프로세스 간 경계 교환을 최소화하고, 비동기 전송을 통해 네트워크 지연을 숨긴다. 결과적으로 BioFVM‑B는 현재 가장 큰 규모의 인간 디지털 트윈(HDT) 시뮬레이션에서도 실시간 혹은 준실시간 수준의 연산을 가능하게 하는 기반 기술로 자리매김한다.
댓글 및 학술 토론
Loading comments...
의견 남기기