Skip to main content
QUICK REVIEW

[논문 리뷰] To Push or To Pull: On Reducing Communication and Synchronization in Graph Computations

Maciej Besta, Michał Podstawski|arXiv (Cornell University)|2020. 10. 30.
Graph Theory and Algorithms참고 문헌 56인용 수 9
한 줄 요약

이 논문은 그래프 계산에서의 푸시-풀 이분법을 조사하며, 공유 상태에 업데이트를 푸시하는 것과 비공유 상태에 업데이트를 풀하는 것을 비교하여 통신 및 동기화 비용을 최소화한다. 여러 모델과 그래프를 대상으로 11개의 알고리즘을 분석함으로써 성능, 수렴 속도, 복잡도 간의 상충 관계를 규명하고, 공유 메모리 및 분산 시스템에서 그래프 처리를 가속화하는 일반적인 최적화 전략을 제시한다.

ABSTRACT

We reduce the cost of communication and synchronization in graph processing by analyzing the fastest way to process graphs: pushing the updates to a shared state or pulling the updates to a private state.We investigate the applicability of this push-pull dichotomy to various algorithms and its impact on complexity, performance, and the amount of used locks, atomics, and reads/writes. We consider 11 graph algorithms, 3 programming models, 2 graph abstractions, and various families of graphs. The conducted analysis illustrates surprising differences between push and pull variants of different algorithms in performance, speed of convergence, and code complexity; the insights are backed up by performance data from hardware counters.We use these findings to illustrate which variant is faster for each algorithm and to develop generic strategies that enable even higher speedups. Our insights can be used to accelerate graph processing engines or libraries on both massively-parallel shared-memory machines as well as distributed-memory systems.

연구 동기 및 목표

  • 그래프 계산에서 푸시 및 풀 전략 간의 성능 및 동기화 상충 관계를 이해하는 것.
  • 다양한 그래프 알고리즘에서 푸시 또는 풀 전략 중 어느 것이 더 높은 성능, 수렴 속도, 잠금 최소화를 이룰 수 있는지 규명하는 것.
  • 그래프 처리 엔진에서 통신 및 동기화 오버헤드를 줄이기 위한 일반적인 최적화 전략을 개발하는 것.
  • 하드웨어 카운터 데이터를 활용하여 푸시 대 풀 전략이 원자 연산, 읽기 및 왤기와 같은 저수준 연산에 미치는 영향을 평가하는 것.
  • 공유 메모리 및 분산 메모리 시스템에서 그래프 처리를 최적화하기 위한 실용적인 통찰을 제공하는 것.

제안 방법

  • 세 가지 프로그래밍 모델과 두 가지 그래프 추상화를 기반으로 11개의 그래프 알고리즘을 분석하여 푸시 및 풀 변형을 비교한다.
  • 하드웨어 성능 카운터를 사용하여 성능, 수렴 속도, 저수준 연산(읽기, 왤기, 원자 연산, 잠금)을 측정한다.
  • 공유 메모리 및 분산 메모리 실행 모델을 평가하여 전략의 이식성 및 확장성을 분석한다.
  • 푸시 또는 풀 패턴에 민감한 알고리즘을 분류하고, 성능에 영향을 미치는 구조적 특성을 규명한다.
  • 특정 알고리즘 패턴이 한 전략을 다른 전략보다 선호하는 이유를 분석하여 일반적인 최적화 전략을 도출한다.
  • 다양한 그래프 유형을 대상으로 실증 평가를 수행하여 결과의 타당성을 검증하고 통찰을 일반화한다.

실험 결과

연구 질문

  • RQ1그래프 처리에서 푸시 또는 풀 전략 중 어느 것이 더 낮은 통신 및 동기화 오버헤드를 유도하는가?
  • RQ2다양한 그래프 알고리즘에서 푸시 및 풀 변형은 성능과 수렴 속도에서 어떻게 다를까?
  • RQ3푸시 대 풀 전략이 원자 연산, 읽기 및 왤기와 같은 저수준 연산에 어떤 영향을 미치는가?
  • RQ4어떤 그래프 알고리즘 특성이 푸시 또는 풀 전략 중 어느 것이 더 효율적인지 결정하는가?
  • RQ5푸시-풀 분석에서 일반적인 최적화 전략을 도출하여 그래프 처리 성능을 향상시킬 수 있는가?

주요 결과

  • 동일한 알고리즘의 푸시 및 풀 변형은 그래프 구조와 액세스 패턴에 따라 상당한 성능 차이를 보이며, 일부 알고리즘은 푸시를 선호하고 다른 알고리즘은 풀을 선호한다.
  • 높은 업데이트 빈도와 낮은 팬인을 가진 알고리즘에서는 푸시 전략이 동기화 오버헤드를 줄이며, 흩어진 또는 비정규적인 그래프에서는 풀 전략이 통신을 최소화한다.
  • 하드웨어 카운터 데이터는 푸시 변형이 페이지랭크 및 SSSP와 같은 워크로드에서 원자 연산과 메모리 경쟁을 줄임을 확인한다.
  • SSSP 및 중심성 중심도 계산과 같은 알고리즘에서는 풀 변형이 더 빠른 수렴 속도를 보이며, 중복 업데이트가 줄어들기 때문이다.
  • 코드 복잡도는 다를 수 있다: 풀 변형은 일반적으로 더 읽기 쉬우며 병렬화가 더 쉽지만, 푸시 변형은 공유 상태를 신중히 관리해야 한다.
  • 푸시-풀 분석에서 도출된 일반적인 최적화 전략은 공유 메모리 및 분산 시스템 양쪽에서 그래프 처리 엔진의 성능 향상에 실질적인 속도 향상을 이끌어낸다.

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

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

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

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