Skip to main content
QUICK REVIEW

[논문 리뷰] Parallel Triangles Counting Using Pipelining

Julián Aráoz, Cristina Zoltán|arXiv (Cornell University)|2015. 10. 12.
Graph Theory and Algorithms참고 문헌 15인용 수 3
한 줄 요약

이 논문은 메모리에 올라가지 않는 큰 그래프에서 삼각형을 세는 데 대해, NiMo—그래픽적이고 암시적 순수 함수형 데이터플로우 프로그래밍 언어—를 사용하여 아키텍처에 종속되지 않는 파이프라인형 병렬 알고리즘을 제시한다. 이 방법은 이웃 집합 크기에 기반해 프로세서를 동적으로 스케줄링하고 스트리밍 파이프라인을 통해 고복제를 방지함으로써, MapReduce의 통신 오버헤드 없이도 효율적이고 확장 가능한 삼각형 세기 알고리즘을 구현한다. 이는 단일 프로세서에서도 정확성을 유지한다.

ABSTRACT

The generalized method to have a parallel solution to a computational problem, is to find a way to use Divide & Conquer paradigm in order to have processors acting on its own data and therefore all can be scheduled in parallel. MapReduce is an example of this approach: Input data is transformed by the mappers, in order to feed the reducers that can run in parallel. In general this schema gives efficient problem solutions, but it stops being true when the replication factor grows. We present another program schema that is useful for describing problem solutions, that can exploit dynamic pipeline parallelism without having to deal with replica- tion factors. We present the schema in an example: counting triangles in graphs, in particular when the graph do not fit in memory. We describe the solution in NiMo, a graphical programming language that implements the implicitly functional parallel data ow model of computation. The solution obtained using NiMo, is architecture agnostic and can be deployed in any parallel/distributed architecture adapting dynamically the processor usage to input characteristics.

연구 동기 및 목표

  • 고복제 요인을 가진 대규모 그래프에서 MapReduce 기반 삼각형 세기의 확장성 한계를 해결하기 위해.
  • 메모리에 올라가지 않는 그래프를 스트리밍 및 파이프라인 기반으로 효율적으로 처리할 수 있는 병렬 알고리즘을 설계하기 위해.
  • 각 노드의 이웃 집합 크기에 기반해 프로세서 간 동적 로드 밸런싱을 실현하여 정적 분할을 피하기 위해.
  • 단일 프로세서에서도 정확하고, 분산 또는 다중코어 아키텍처에서 높은 수준의 병렬성 확보가 가능한 솔루션을 개발하기 위해.
  • NiMo의 암시적 순수 함수형 데이터플로우 모델을 활용해 아키텍처에 종속되지 않는 구현을 제공함으로써 다양한 병렬 시스템에의 배포를 지원하기 위해.

제안 방법

  • 각 프로세서가 노드를 담당하는 필터 역할을 하며, 들어오는 간선을 처리하고 인접한 노드 집합을 유지하는 파이프라인형 데이터플로우 모델을 사용한다.
  • 노드를 '책임 있는 노드'로 할당하는 동적 스케줄링 전략을 적용하여, 더 높은 우선순위의 이웃에 의해 이미 할당되지 않은 경우에만 해당 노드를 책임지게 하여 중복 계산을 줄인다.
  • 파이프라인은 두 단계로 구성된다: 첫째, 책임 있는 노드별 인접 간선 수집; 둘째, 삼각형을 완성하는 간선를 확인하고 결과를 필터 간 집계한다.
  • MapReduce의 해시 기반 샤프닝을 스트리밍 메시지 전달 파이프라인으로 대체하여 데이터 복제와 통신 비용을 최소화한다.
  • 입력량과 데이터 도착 패턴에 따라 행동을 조정하는 상태 기반 프로세스로 필터를 모델링하기 위해 NiMo의 프로세스 추상화를 사용한다.
  • 재시도 가능한 프로세스를 허용함으로써 오류 내성성을 확보하고, 다중집합을 집합 대신 사용함으로써 다중그래프를 처리할 수 있도록 확장 가능하다.

실험 결과

연구 질문

  • RQ1메모리에 올라가지 않는 큰 그래프에서 삼각형 세기를 어떻게 효율적으로 병렬화할 수 있는가?
  • RQ2전통적인 MapReduce 기반 접근 방식에 비해 통신 비용과 로드 밸런싱 측면에서 파이프라인형 데이터플로우 모델이 더 우수한 성능을 낼 수 있는가?
  • RQ3그래프의 구조나 정적 분할에 대한 사전 지식 없이 삼각형 세기에서 동적 로드 밸런싱을 어떻게 달성할 수 있는가?
  • RQ4NiMo와 같은 기능적이고 아키텍처에 종속되지 않는 프로그래밍 모델이 그래프 문제에 대해 확장 가능하고 정확한 병렬 알고리즘을 표현하는 데 얼마나 효과적인가?
  • RQ5동일한 알고리즘이 단일 프로세서 환경과 고도로 병렬 실행 환경 모두에서 정확하고 효율적인가?

주요 결과

  • 제안된 파이프라인 알고리즘은 동적 책임 기반 할당을 통해 MapReduce의 높은 복제 요인을 피함으로써 중간 데이터 부담을 줄였다.
  • 각 삼각형이 정확히 한 번만 세지도록 보장하고, 삼각형의 기여도를 하나의 책임 있는 노드에 할당함으로써 정확한 삼각형 세기 결과를 달성한다.
  • BSP 모델에서 장벽 없이 웨이브프론트 유사 행동을 나타내어 효율적인 동기화와 로드 밸런싱을 가능하게 한다.
  • 단일 프로세서에서 실행되어도 정확성이 유지되어 실행 스케일에 관계없이 강건성과 정확성을 입증한다.
  • NiMo 기반 구현의 아키텍처에 종속되지 않는 특성 덕분에 입력 특성에 자동으로 적응하는 다양한 병렬 및 분산 시스템에의 배포가 가능하다.
  • 집합 대신 다중집합을 사용함으로써 다중그래프로의 확장이 가능하며, 복수의 삼각형을 다중성 인식 기반 간선 확인을 통해 세는 것이 가능해진다.

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

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

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

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