Skip to main content
QUICK REVIEW

[논문 리뷰] GVE-Louvain: Fast Louvain Algorithm for Community Detection in Shared Memory Setting

Subhajit Sahu|arXiv (Cornell University)|2023. 12. 08.
Complex Network Analysis Techniques인용 수 7
한 줄 요약

이 논문은 공동체 탐지에 대한 공유 메모리 병렬 구현인 GVE-Louvain을 제시한다. 로컬 이동 및 집계 단계를 가속화하기 위해 9개의 정교한 최적화를 활용한다. 双 16코어 인텔 Xeon 시스템에서 GVE-Louvain은 38억 개 간선을 가진 웹 그래프에서 560M 엣지/초의 처리 속도를 기록했으며, Vite, Grappolo, NetworKit보다 각각 50배, 22배, 20배 빠르다. 스레드 수를 두 배로 늘릴 때마다 1.6배의 속도 향상이 발생한다.

ABSTRACT

Community detection is the problem of identifying natural divisions in networks. Efficient parallel algorithms for identifying such divisions is critical in a number of applications, where the size of datasets have reached significant scales. This technical report presents one of the most efficient multicore implementations of the Louvain algorithm, a high quality community detection method. On a server equipped with dual 16-core Intel Xeon Gold 6226R processors, our Louvain, which we term as GVE-Louvain, outperforms Vite, Grappolo, NetworKit Louvain, and cuGraph Louvain (running on NVIDIA A100 GPU) by 50x, 22x, 20x, and 5.8x faster respectively - achieving a processing rate of 560M edges/s on a 3.8B edge graph. In addition, GVE-Louvain improves performance at an average rate of 1.6x for every doubling of threads.

연구 동기 및 목표

  • 로컬 이동 단계의 병렬화가 진전되었음에도 불구하고 여전히 최적화되지 않은 루바인 알고리즘의 집계 단계에서 발생하는 성능 저하 문제를 해결한다.
  • 에너지 효율적이고 널리 보급된 공유 메모리 다코어 아키텍처를 고려해 대규모 그래프에서 공동체 탐지의 효율성을 향상시킨다.
  • 산산이 흩어진 알고리즘적 개선 사항을 하나의 고성능 병렬 프레임워크로 통합한 통합적이고 고도로 최적화된 구현체를 제공한다.
  • 병렬 실행 중 로드 불균형과 경쟁을 최소화하면서도 강력한 확장성과 높은 모듈러리티 품질을 달성한다.
  • 미래의 동적 알고리즘 확장 기반을 마련하여 동적 그래프에서 실시간 또는 인터랙티브 공동체 탐지를 가능하게 한다.

제안 방법

  • 공유 메모리 환경에서 메모리 경쟁을 줄이고 데이터 국소성을 향상시키기 위해 루바인 알고리즘에 9개의 정밀 최적화를 적용한다.
  • 벡터화된 해시 테이블과 효율적인 스레드 할당 전략을 사용해 로컬 이동 단계를 최적화하여 가짜 공유와 캐시 미스를 최소화한다.
  • 잠금 경쟁을 최소화하고 스레드 간 로드 밸런싱을 향상시키기 위해 고유한 확장 가능한 감소 전략을 통해 집계 단계를 가속화한다.
  • 불규칙한 그래프 워크로드에서 오버헤드를 줄이고 작업 분배를 균형 있게 하기 위해 OpenMP 태스크와 정적 스케줄링을 조합한 하이브리드 접근 방식을 도입한다.
  • 다양한 입력 유형에서의 그래프 차수와 공동체 구조의 변화에 따라 적응하는 동적 로드 밸런싱 메커니즘을 구현한다.
  • 지연 시간을 줄이기 위해 공동체 재번호 할당 및 계층도 검색과 같은 성능에 민감한 컴포넌트를 주 계산 파이프라인에 통합한다.

실험 결과

연구 질문

  • RQ1로컬 이동 및 집계 단계를 병렬화할 때 발생하는 성능 저하 문제를 해결하기 위해 루바인 알고리즘의 집계 단계를 어떻게 최적화할 수 있는가?
  • RQ2멀티코어 공유 메모리 환경에서 공동체 탐지에 있어 알고리즘적 최적화와 시스템 수준 최적화의 조합이 가장 큰 성능 향상을 이끌어내는가?
  • RQ3로컬 이동 및 집계 단계가 모두 최적화된 경우, 루바인 알고리즘에서 강력한 확장성은 어느 정도 달성될 수 있는가?
  • RQ4최적화된 GVE-Louvain의 모듈러리티 품질은 기존 오픈소스 구현체인 Vite, Grappolo, NetworKit와 비교해 어떻게 되는가?
  • RQ5그래프 특성(예: 차수 분포, 클러스터링)은 최적화된 구현체의 성능 및 확장성에 어떤 영향을 미치는가?

주요 결과

  • 38억 엣지 웹 그래프에서 GVE-Louvain은 1초당 5.6억 엣지를 처리하여 560M 엣지/초의 처리 속도를 달성한다.
  • 동일한 하드웨어 및 데이터셋에서 GVE-Louvain은 Vite보다 50배, Grappolo보다 22배, NetworKit보다 20배 더 빠르다.
  • 스레드 수를 두 배로 늘릴 때마다 평균 1.6배의 속도 향상을 기록하여 강력한 확장성 효율성을 입증한다.
  • 64개 스레드에서 GVE-Louvain은 단일 스레드 대비 11.4배의 속도 향상을 기록했으며, NUMA 영향으로 인한 성능 저하가 발생한다.
  • 로컬 이동 단계는 총 실행 시간의 49%를 차지하고, 집계 단계는 35%, 나머지 단계(초기화, 재번호 할당 등)는 16%를 차지한다.
  • 웹 그래프에서는 Vite보다 3.1% 높은 모듈러리티를 달성했고, 클러스터링이 열악한 소셜 네트워크에서는 Grappolo 및 NetworKit보다 0.6% 낮은 모듈러리티를 기록했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.