Skip to main content
QUICK REVIEW

[논문 리뷰] giotto-ph: A Python Library for High-Performance Computation of Persistent Homology of Vietoris-Rips Filtrations

Julián Burella Pérez, Sydney Hauke|arXiv (Cornell University)|2021. 07. 12.
Topological and Geometric Data Analysis참고 문헌 38인용 수 9
한 줄 요약

giotto-ph는 최적화된 C++ 백엔드와 고도로 병렬화된 처리, 재구현된 Edge Collapser 프리프로세서를 통합함으로써 베이터비스–리프스 필터링에 대한 영구 호몰로지 계산을 가속화하는 고성능 파이썬 라이브러리입니다. 잠금 없는 다중 코어 실행과 효율적인 데이터 구조를 활용하여, CPU에서 최첨단 성능을 달성하며, 5~10개의 CPU 코어만으로도 GPU 가속화된 Ripser++조차도 앞서는 성능을 보입니다.

ABSTRACT

We introduce giotto-ph, a high-performance, open-source software package for the computation of Vietoris-Rips barcodes. giotto-ph is based on Morozov and Nigmetov's lockfree (multicore) implementation of Ulrich Bauer's Ripser package. It also contains a re-working of the GUDHI library's implementation of Boissonnat and Pritam's Edge Collapser, which can be used as a pre-processing step to dramatically reduce overall run-times in certain scenarios. Our contribution is twofold: on the one hand, we integrate existing state-of-the-art ideas coherently in a single library and provide Python bindings to the C++ code. On the other hand, we increase parallelization opportunities and improve overall performance by adopting more efficient data structures. Our persistent homology backend establishes a new state of the art, surpassing even GPU-accelerated implementations such as Ripser++ when using as few as 5-10 CPU cores. Furthermore, our implementation of Edge Collapser has fewer software dependencies and improved run-times relative to GUDHI's original implementation.

연구 동기 및 목표

  • 베이터비스–리프스 필터링의 영구 호몰로지 계산을 위한 고성능, 오픈소스 파이썬 라이브러리 개발
  • 클리어링, 코호몰로지, 눈에 띄는 쌍과 같은 최첨단 알고리즘 최적화를 하나의 효율적이고 병렬 처리 가능한 소프트웨어 스택에 통합
  • 의존성 감소와 더 빠른 실행을 위한 Edge Collapser 알고리즘의 재구현을 통한 프리프로세싱 성능 향상
  • 기존 GPU 가속화된 대안들인 Ripser++를 능가하는 표준 CPU에서 뛰어난 성능 달성
  • PyTorch와 같은 프레임워크와의 향후 백프로파게이션 지원을 통한 머신러닝 워크플로우에의 원활한 통합 가능

제안 방법

  • 모로조프와 니그메트로프의 우르리히 바우어의 Ripser를 기반으로 한 잠금 없는 다중 코어 병렬 처리 C++ 백엔드를 사용하여 고도의 동시성을 확보
  • 암시적 행렬 표현과 감소된 경계/코경계 행렬을 활용하여 메모리 및 계산 오버헤드 최소화
  • 더 빠른 데이터 구조를 사용하여 재구현된 Edge Collapser는 봉화 반경 최적화 기능을 포함하여 프리프로세싱 시간을 추가로 단축
  • 페어링 유일성 레마와 함께 급격히 나타나는/눈에 띄는 쌍 최적화를 활용하여 바코드 계산 속도 향상
  • 다중 CPU 코어를 통한 병렬 실행을 지원하며, 하이퍼스레딩을 완전히 활용하고 효율적인 메모리 접근 패턴을 구현
  • 낮은 수준의 성능를 유지하면서도 데이터 과학 및 머신러닝 워크플로우에 쉽게 통합 가능한 파이썬 바인딩 제공

실험 결과

연구 질문

  • RQ1더 나은 병렬 처리와 데이터 구조 설계를 통해 CPU 기반 영구 호몰로지 라이브러리가 GPU 가속화된 대안을 능가할 수 있는가?
  • RQ2Edge Collapser를 통한 프리프로세싱은 베이터비스–리프스 필터링에 대한 영구 호몰로지 계산 비용을 얼마나 줄일 수 있는가?
  • RQ3중앙점 구조를 가진 데이터셋에 적용했을 때, 봉화 반경 최적화 기법은 Edge Collapser의 가속화에 얼마나 효과적인가?
  • RQ4고도로 최적화되고 모듈화되며 종속성이 적은 Edge Collapser의 재구현은 GUDHI와 같은 기존 라이브러리에 비해 성능과 사용성 면에서 향상될 수 있는가?
  • RQ5저성능 CPU를 포함한 다양한 하드웨어 플랫폼에서 라이브러리의 성능 스케일링 능력은 어떠한가?

주요 결과

  • giotto-ph의 영구 호몰로지 백엔드는 CPU에서 뛰어난 성능을 보이며, 5~10개의 CPU 코어만으로도 GPU 가속화된 Ripser++를 능가합니다.
  • 라이브러리의 Edge Collapser는 GUDHI의 원본 버전보다 일관되게 빠르며, 유리한 데이터셋에서는 1.49배에서 2.31배의 성능 향상을 기록합니다.
  • 단위 입방체에서 추출한 3000개 점의 데이터셋에서, 봉화 반경 최적화로 Edge Collapser 실행 시간이 180초에서 78초로 감소하여 2.31배의 성능 향상을 달성했습니다.
  • Intel i7-7700(4개의 물리 코어, 8개의 논리 스레드)와 같은 저성능 하드웨어에서도 강력한 스케일링 성능 유지를 보이며 광범위한 하드웨어 호환성을 입증했습니다.
  • 클리어링, 코호몰로지, 눈에 띄는 쌍 최적화와 같은 고도의 최적화 통합은 대규모 토폴로지 데이터 분석을 위한 견고하고 효율적인 파이프라인을 제공합니다.
  • 모듈러한 설계 덕분에 향후 다른 필터링 유형과 파이토치와 같은 딥러닝 프레임워크와의 통합이 가능해질 것입니다.

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

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

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

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