압축과 필터링으로 병렬 BFS 통신 효율 극대화

압축과 필터링으로 병렬 BFS 통신 효율 극대화

초록

본 논문은 대규모 분산 메모리 시스템에서 BFS 수행 시 통신 비용이 병목이 되는 문제를 해결하기 위해, 비트맵 기반 압축과 새로운 분산 디렉터리인 크로스 디렉터리를 이용해 메시지 크기를 크게 줄이고 중복 데이터를 걸러낸다. 6,144코어 SMP 클러스터 실험 결과, 기존 Graph500 구현 대비 2.2배 가속, 통신 시간 79 % 감소, 12.1 GTEPS 성능을 달성하였다.

상세 분석

본 연구는 병렬 BFS에서 가장 큰 제약인 네트워크 통신 비용을 두 단계로 최소화한다. 첫 번째 단계는 비트맵 압축(bitmap compression)이다. BFS 탐색 시 각 레벨에서 활성 정점 집합을 비트맵 형태로 표현하고, 이를 워드 단위로 런-길이 인코딩(RLE) 혹은 워드-레벨 비트 압축을 적용한다. 압축률은 정점 집합의 희소성에 크게 의존하지만, 실험에서는 평균 5~7배의 압축 효과를 보였다. 두 번째 단계는 ‘크로스 디렉터리(cross directory)’라 명명한 분산 디렉터리 구조다. 기존의 전통적인 1‑hop 전파 방식은 모든 프로세스가 전체 메시지를 수신하고 필요 없는 데이터를 버리는 방식으로, 불필요한 네트워크 트래픽이 크게 발생한다. 크로스 디렉터리는 각 프로세스가 자신이 담당하는 정점 집합과 인접 정점의 소유 프로세스를 사전에 매핑한 전역 라우팅 테이블을 유지한다. 메시지를 전송하기 전, 송신 프로세스는 이 테이블을 이용해 목적지 프로세스가 실제로 필요로 하는 비트맵 부분만을 추출(sieve)하고, 압축된 형태로 전송한다. 수신 측에서는 역압축 후 바로 로컬 큐에 삽입한다. 이 과정은 O(1) 수준의 테이블 조회와 비트 연산으로 구현되어, 추가 연산 오버헤드가 미미하다.

실험 환경은 6,144코어(≈ 384 노드) SMP 클러스터이며, Graph500 베타 데이터셋(Scale 30 ~ 33)으로 평가하였다. 압축+필터링을 적용한 버전은 기본 BFS 구현 대비 평균 2.2배의 처리량 향상을 보였으며, 특히 통신 단계에서 79 %의 시간 절감이 관찰되었다. 이는 전체 실행 시간의 55 % 이상을 차지하던 통신 비용을 크게 낮춘 결과이다. 또한, 메모리 사용량도 비트맵 압축 덕분에 30 % 정도 감소하였다.

핵심 인사이트는 “통신 비용은 데이터 양에 비례한다”는 전제 하에, 데이터 자체를 작게 만들고, 필요 없는 데이터를 사전에 걸러내는 두 가지 전략을 결합하면 기존 한계점을 크게 뛰어넘을 수 있다는 점이다. 특히, 크로스 디렉터리는 전통적인 라우팅 테이블과 달리 BFS 특성(레벨‑단위 전파, 정점‑정점 인접성)에 최적화돼, 동적 그래프나 비정형 네트워크에서도 확장 가능성이 높다.

한계점으로는 비트맵 압축이 정점 집합이 매우 밀집될 경우 압축 효율이 급격히 떨어진다는 점과, 크로스 디렉터리 구축 시 초기 비용이 존재한다는 점이다. 또한, 현재 구현은 정적 그래프에 초점을 맞추었으며, 동적 그래프 업데이트 시 디렉터리 일관성 유지가 추가 연구 과제로 남는다.

향후 연구 방향은 (1) 압축 알고리즘을 상황에 따라 자동 전환하는 어댑티브 스킴, (2) 크로스 디렉터리의 동적 재구성 메커니즘, (3) GPU‑CPU 이종 환경에서의 적용 가능성 탐색, (4) 다른 그래프 알고리즘(예: PageRank, SSSP)으로의 일반화 등을 제시한다. 이러한 확장은 대규모 그래프 분석 시스템에서 통신‑연산 균형을 재조정하고, 궁극적으로는 exascale 수준의 그래프 처리에 기여할 것으로 기대된다.