[논문 리뷰] Efficient Processing of Very Large Graphs in a Small Cluster
GraphD는 메모리 외부 작업을 최소화하고 계산과 통신을 겹침으로써 작은 클러스터에서 매우 큰 그래프를 효율적으로 처리할 수 있도록 하는 Pregel 유사 시스템이다. 엣지와 메시지를 로컬 디스크에 스트리밍하면서도, ID 재코딩과 새로운 스킵 기능을 통해 비용이 많이 드는 외부 메모리 연산을 제거함으로써 메모리 성능에 근접한 성능을 달성한다. 각 머신당 메모리 사용량은 O(|V|/n)에 불과하며, 이는 기존의 외부 메모리 시스템보다 수개의 주기로 성능이 뛰어나다.
Inspired by the success of Google's Pregel, many systems have been developed recently for iterative computation over big graphs. These systems provide a user-friendly vertex-centric programming interface, where a programmer only needs to specify the behavior of one generic vertex when developing a parallel graph algorithm. However, most existing systems require the input graph to reside in memories of the machines in a cluster, and the few out-of-core systems suffer from problems such as poor efficiency for sparse computation workload, high demand on network bandwidth, and expensive cost incurred by external-memory join and group-by. In this paper, we introduce the GraphD system for a user to process very large graphs with ordinary computing resources. GraphD fully overlaps computation with communication, by streaming edges and messages on local disks, while transmitting messages in parallel. For a broad class of Pregel algorithms where message combiner is applicable, GraphD eliminates the need of any expensive external-memory join or group-by. These key techniques allow GraphD to achieve comparable performance to in-memory Pregel-like systems without keeping edges and messages in memories. We prove that to process a graph G=(V, E) with n machines using GraphD, each machine only requires O(|V|/n) memory space, allowing GraphD to scale to very large graphs with a small cluster. Extensive experiments show that GraphD beats existing out-of-core systems by orders of magnitude, and achieves comparable performance to in-memory systems running with enough memories.
연구 동기 및 목표
- 매우 큰 그래프를 처리하기 위해 큰 메모리 사용량을 요구하는 메모리 내부 그래프 처리 시스템의 확장성 한계를 해결하기 위해.
- 조인 및 그룹화와 같은 비용이 많이 드는 외부 메모리 연산에 의존하는 기존 외부 메모리 시스템의 비효율성을 극복하기 위해.
- 매 반복에서 활성화된 정점의 비율이 매우 낮은 희박한 계산 워크로드를 외부 메모리 환경에서 효율적으로 처리할 수 있도록 하기 위해.
- 로컬 디스크 버퍼링을 활용해 계산과 통신을 완전히 겹침으로써 표준 클러스터 환경에서 I/O 및 네트워크 병목 현상을 최소화하는 시스템을 설계하기 위해.
- 일반적인 컴퓨팅 자원에서 구동 가능한 시스템을 설계함과 동시에, 메모리 내부 시스템과 경쟁 가능한 성능을 달성하면서도 각 머신당 O(|V|/n) 메모리만을 사용하기 위해.
제안 방법
- GraphD는 전체 그래프와 메시지 집합을 메모리에 유지하지 않고, 디스크에서 직접 엣지와 메시지를 스트리밍한다.
- 희박한 계산 워크로드를 효율적으로 처리하기 위해, 비활성 정점을 로드하지 않고 건너뛸 수 있는 새로운 스킵 기능(skiп(num_items))을 사용한다.
- 출력 메시지를 로컬 디스크에 버퍼링하여 디스크 I/O와 네트워크 통신을 겹침으로써, I/O 지연 시간을 통신 시간 내에 숨긴다.
- 메시지 조합기(메시지 커버터)가 있는 알고리즘의 경우, ID 재코딩을 적용하여 비용이 많이 드는 외부 메모리 병합 정렬 또는 그룹화 연산이 필요 없도록 한다.
- 시퀀셜 I/O 대역폭을 최대한 활용하기 위해, 랜덤 액세스를 최소화하고 처리량을 극대화하는 데이터 액세스 패턴을 구성한다.
- 기존 시스템이 최적화되는 고속 네트워크 환경이 아닌, 기가비트 이더넷으로 연결된 클러스터를 대상으로 설계되어, 낮은 네트워크 대역폭과 높은 I/O 효율성을 고려한다.
실험 결과
연구 질문
- RQ1메모리 내부에 전체 그래프와 메시지를 유지하지 않는 한계에서, Pregel 유사 시스템이 매우 큰 그래프에 대해 메모리 성능에 근접한 성능을 달성할 수 있는가?
- RQ2매 반복에서 활성화된 정점의 비율이 매우 낮은 희박한 계산 워크로드에 대해, 외부 메모리 그래프 처리가 어떻게 효율적으로 구현될 수 있는가?
- RQ3표준 클러스터 환경에서 디스크 스트리밍과 통신 겹침을 효과적으로 활용하여 I/O 및 네트워크 병목 현상을 최소화할 수 있는가?
- RQ4ID 재코딩을 통해 외부 메모리 병합 정렬 및 그룹화와 같은 고비용 연산을 얼마나 효과적으로 제거할 수 있는가?
- RQ5GraphD의 성능은 다양한 그래프 워크로드와 클러스터 구성에서 기존의 메모리 내부 및 외부 메모리 시스템과 비교해 어느 정도일까?
주요 결과
- GraphD는 기존 외부 메모리 시스템보다 수개의 주기로 성능이 뛰어나며, 특히 SSSP 및 BFS와 같은 희박 워크로드에서 두드러진다.
- WebUK 그래프에서 GraphD는 초당 0.02~0.03초의 슈퍼스텝 시간을 기록했고, Pregelix는 슈퍼스텝당 최소 35초의 고정 비용을 유발해 1000배 이상 느렸다.
- X-Stream는 워크로드가 긴 반복을 필요로 하는 희박 알고리즘에서 매 반복마다 모든 엣지를 스트리밍하면서 발생하는 높은 I/O 오버헤드로 인해 WebUK에서 하루가 넘도록 완료되지 못했다. 이는 긴 실행 시간에 걸친 희박 알고리즘에 대해 비효율적임을 보여준다.
- BTC와 WebUK에서 메시지 수가 적을 경우, GraphD의 IO-Recoding 모드가 IO-Basic보다 뛰어난 성능을 보였는데, 이는 배열 관리 비용이 감소했기 때문이다.
- GraphD는 메모리 내부 시스템과 경쟁 가능한 성능을 달성했으며, 메모리 내부 시스템이 충분한 메모리를 확보한 경우에도 여전히 뛰어난 효율성과 확장성을 보였다.
- 시스템은 각 머신당 O(|V|/n) 메모리만을 사용하며, 이는 일반 하드웨어를 사용하는 작은 클러스터에서 ClueWeb(400GB 이상)와 같은 매우 큰 그래프를 처리할 수 있도록 한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.