병렬 BioScape 모바일 및 공간 상호작용을 위한 확률적 병렬 언어
초록
BioScape는 생물학적 표면과 바이오필름을 모델링하기 위해 고안된 동시성 프로그래밍 언어이다. 기존 SPiM 기반 구현은 Gillespie 알고리즘에 의존해 순차적으로 시뮬레이션을 수행해 1 000개 이하의 에이전트만 처리할 수 있었다. 본 논문은 멀티코어·GPU 환경을 활용해 완전 병렬 실행이 가능한 “Parallel BioScape”를 제안한다. 공간적 위치와 이동, 반응을 동시에 계산하도록 설계된 새로운 전이 규칙과 충돌 방지 메커니즘을 도입하고, 이를 바탕으로 구현한 프로토타입이 기존 구현 대비 수십 배의 속도 향상을 보이며 대규모 바이오필름 시뮬레이션을 가능하게 함을 실험적으로 입증한다.
상세 분석
Parallel BioScape는 기존 BioScape가 제공하던 “공간적 위치와 이동, 반응”이라는 세 가지 핵심 개념을 그대로 유지하면서, 시뮬레이션 엔진을 완전 병렬화한다는 점에서 혁신적이다. 먼저, 에이전트의 위치를 3차원 격자 혹은 연속 공간에 매핑하고, 각 에이전트는 자체적인 “스케줄러”를 갖는다. 이 스케줄러는 Gillespie 알고리즘의 “propensity” 값을 사전에 계산해 두고, 전역적인 이벤트 큐 대신 로컬 큐에 저장한다. 전역 동기화는 “시간 슬라이스”라는 고정된 시간 간격으로만 수행되며, 각 슬라이스 내에서는 모든 에이전트가 독립적으로 반응 여부를 판단하고, 충돌 검사를 통해 물리적 겹침을 방지한다.
충돌 방지 메커니즘은 두 단계로 이루어진다. 첫 번째 단계에서는 각 에이전트가 이동하려는 목표 위치를 제안하고, 해시 기반 공간 파티셔닝을 이용해 인접 에이전트와의 잠재적 충돌을 빠르게 탐지한다. 두 번째 단계에서는 충돌이 감지된 경우, 우선순위(예: 반응 속도, 에이전트 종류)와 무작위성을 결합해 하나의 에이전트만 이동을 허용한다. 이 과정은 GPU의 워프(warp) 수준에서 병렬적으로 수행되므로, 충돌 해결에 소요되는 시간은 에이전트 수에 거의 비례하지 않는다.
알고리즘적 관점에서 가장 큰 도전은 “확률적 선택”을 병렬 환경에서 일관되게 유지하는 것이었다. 저자들은 각 스레드가 독립적인 난수 스트림을 사용하도록 설계하고, 전역적인 난수 시드 관리 체계를 도입해 재현성을 확보했다. 또한, “propensity” 값이 동적으로 변하는 경우를 대비해, 각 슬라이스 시작 시점에 전체 시스템의 propensities를 재계산하는 “리프레시 단계”를 삽입했다. 이는 기존 Gillespie 기반 시뮬레이션이 갖는 “시간 가변 스텝” 개념을 유지하면서도 병렬 실행에 필요한 동기화 비용을 최소화한다.
성능 평가에서는 10 000에서 100 000 에이전트까지 확장했을 때, CPU 32코어 환경에서 최대 45배, GPU (NVIDIA RTX 3090) 환경에서 최대 120배의 가속을 기록했다. 특히, 바이오필름 형성 시뮬레이션에서 DNAse 처리 효과를 모델링할 때, 병렬 구현은 실시간에 가까운 시각화와 파라미터 스위프를 가능하게 하여, 실험 설계 단계에서의 피드백 루프를 크게 단축시켰다.
이 논문은 병렬화 전략을 통해 기존 BioScape의 확장성을 근본적으로 개선했을 뿐만 아니라, 공간적·확률적 모델링을 필요로 하는 다양한 생물학·재료 과학 분야에 적용 가능한 범용 프레임워크를 제시한다는 점에서 학술적·실용적 의의가 크다.