View : 785 Download: 0

CMR-CC

Title
CMR-CC
Other Titles
CMR-CC: Fast Connected Components Computation for Largescale Graphs in MapReduce
Authors
오소연
Issue Date
2018
Department/Major
대학원 컴퓨터공학과
Publisher
이화여자대학교 대학원
Degree
Master
Advisors
김명
Abstract
전세계 수십억 명 규모의 이용자들이 교류하는 소셜 네트워크 서비스, 아직 밝혀지지 않은 것이 더 많은 인간 뇌 신경망, 국가와 대륙 규모로 뻗어 있는 도로망과 위치 정보, 인터넷에 연결된 수많은 컴퓨터와 모바일 기기, 나아가 각종 사물들과 같이, 오늘날 우리 주변의 많은 것들을 그래프로 표현할 수 있다. 그래프를 통해 우리는 이러한 것들을 오직 노드와 간선으로만 바라볼 수 있고, 그 때 비로소 그냥 볼 때는 알 수 없었던 유의미한 정보들을 발견할 수 있게 된다. 이러한 실세계 그래프들은 수십억 개 이상의 노드와 간선으로 이루어져, 파일로 저장하기 위해서만도 테라바이트 이상의 저장 공간을 필요로 하는 대용량 그래프이다. 이 정도 규모의 대용량 그래프는 한 대의 컴퓨터에서 처리하기 어렵기 때문에, 여러 대의 컴퓨터를 네트워크로 연결한 컴퓨터 클러스터에서 동작하는 하둡과 같은 분산 컴퓨팅 프레임워크를 기반으로 처리해야 한다. 그리고 이러한 대용량 그래프에서 유의미한 정보를 발견하기 위한 분석 기법들 역시, 하둡과 같은 분산 컴퓨팅 프레임워크를 기반으로 연구되고 있다. 그래프의 연결성분은 서로 연결된 노드로 이루어진 극대 부분 그래프이다. 대용량 그래프의 연결성분 계산은 분산 환경을 기반으로 수행되는 다양한 대용량 그래프 분석 작업에 있어서 전처리 등의 기본 연산에 활용되기 때문에, 매우 기초적이지만 필수적이고 중요한 문제이며, 빠른 실행 시간이 매우 중요한 성능 평가 지표가 된다. 대용량 그래프의 연결성분 계산 기법은 빅데이터 처리에 있어서 사실상의 표준으로 자리잡은, 하둡 환경과 맵리듀스 프로그래밍 모델을 기반으로 연구되고 있다. 기존의 맵리듀스 기반 연결성분 계산 알고리즘들은 연결성분이 구해질 때까지 단위 잡을 반복적으로 실행하면서, 부분 클러스터들의 크기를 점진적으로 확장해 나가는 구조를 갖는다. 하지만, 이러한 반복적인 맵리듀스 잡 실행 구조로 인하여 누적되는 통신량, 디스크 접근 오버헤드, 잡 준비 시간 등은 결과적으로 알고리즘의 실행 시간을 저하시키는 주요한 원인이 된다. 본 논문에서는 이러한 반복적인 잡 실행 구조에서 벗어나, 상수 횟수의 맵리듀스 잡 실행(Constant MapReduce Job execution)을 통해서, 대용량 그래프의 연결성분(Connected Component, CC)을 계산하는 알고리즘인 CMR-CC를 제안한다. CMR-CC는 연결성분 계산 문제를, 노드 부분집합들 간의 공통 노드 탐지를 기반으로 한 합집합 문제로 치환하는 새로운 방식의 접근법을 기반으로 한다. CMR-CC는 맵리듀스 잡의 반복 실행 횟수와 더불어, 개별 잡 실행 과정에서 발생하는 통신량을 개선하였다. 결과적으로, CMR-CC는 기존 알고리즘과 비교하여 최소 2배 이상 개선된 실행 시간 및 3배 이상 개선된 누적 통신량을 보임을 실험을 통해 확인하였다. 마지막으로 CMR-CC는 기존 알고리즘과는 달리, 같은 노드 수를 가진 그래프에 대해서, 그래프의 형태에 관계없이 고른 성능을 나타낸다는 장점을 가진다. 기존 알고리즘은 대용량 그래프의 특징적인 형태인, 그래프를 구성하는 대부분의 노드가 소수의 큰 연결성분에 속한 구조에서 최적의 성능을 발휘하지 못한다. 이를 고려할 때, CMR-CC는 새로운 연결성분 문제 접근법을 기반으로, 최소한의 잡 실행 횟수와 개선된 통신량을 통하여, 실세계 그래프의 연결성분을 빠르게 계산할 수 있다는 점에서 큰 의의를 갖는다. 또한, 연결성분 계산 문제는 대용량 그래프 처리를 위한 다양한 기법에서 필수적으로 활용되는 기본적이고 중요한 문제인 만큼, 본 논문이 갖는 의의는 더욱 크게 다가올 수 있을 것이다.;A connected component of an undirected graph is a maximal subgraph in which any two vertices are connected to each other by paths. Computing connected components for large-scale graphs is very essential and important because connected components are used in various type of graph analysis tasks. And for the same reason, connected components computation should be processed in a very short time. There are several studies of how compute connected components for large-scale graphs in Hadoop MapReduce which is a de facto standard for processing large-scale data. Previous algorithms iterate many number of MapReduce jobs for computing connected components. However, iterating many MapReduce jobs can cause a low performance. Because overheads for running a job, such as communication overheads during a shuffling step, disk access overhead and overheads for preparing execution of a job can be accumulated by iterating MapReduce jobs. CMR-CC computes connected components with constant number of MapReduce jobs executions. CMR-CC transforms the connected components computation problem into a problem of computing a union of node subsets by detecting common nodes between the node subsets. As a result, CMR-CC algorithms reduced O(log n) number of MapReduce job iterations into O(1), where n is the number of nodes in the given graph. By reducing the number of MapReduce job iteration, the runtime of CMR-CC is decreased by at least two times compared to the previous connected components computation algorithm Hash-to-Min. Total amount of communication of CMR-CC is also decreased by at least three times compared to the former algorithm Hash-to-Min. Also, CMR-CC gets even performance regardless of shape of input graphs with same number of nodes. However, former algorithm Hash-to-Min is not optimized in case of a shape of real-world graphs.
Fulltext
Show the fulltext
Appears in Collections:
일반대학원 > 컴퓨터공학과 > Theses_Master
Files in This Item:
There are no files associated with this item.
Export
RIS (EndNote)
XLS (Excel)
XML


qrcode

BROWSE