CPU-GPU 이기종 플랫폼에서 하둡 맵리듀스의 가속: CKY 파서 사례 분석

빅데이터 시대가 도래함에 따라 하둡 맵리듀스와 같은 응용이 널리 사용되고 있다. 한편, 최근 GPGPU가 보편화되면서, 다양한 분야의 응용들이 GPU를 이용하여 가속되고 있다. 본 논문은 하둡 맵리듀스에서 GPU를 사용하는 방법을 제안하고, CPU와 GPU가 모두 포함되는 이기종 서버로 구성된 분산 환경에서 최적의 데이터 처리 속도를 얻기 위해, CPU와 GPU에 각각 할당되는 맵 태스크들에 대한 정적 분할 및 동적 스케줄링에 대한 기법을 제안하였다. 노드마다 12개의 CPU 코어와 1개의 GPU가 장착된 14-노드 클러스터 환경에서 하둡 맵리듀스로 CKY 파서 응용을 수행하여, CPU 코어 1개만 사용한 단일 서버에서의 수행시간 대비 245배 가속을 하였고, 노드별로 GPU를 사용하지 않고 CPU 코어 12개만 활용하는 동일 하둡 클러스터에서의 수행시간 대비 2.5배 가속을 하였다. 또한 제안하는 기법으로 CPU 코어 12개와 GPU를 모두 사용하는 하둡 클러스터 수행시간 대비 총 2.8배 가속이 되었다. 【These days, big data computing is prevalent and Hadoop MapReduce framework is widely used for its simple programming model. On the other hand, General-Purpose Graphics Processing Unit (GPGPU) has become very popular and various domains of applications have been successfully accelerated using GPUs. In this paper, we propose a method to use GPU within Hadoop MapReduce framework. Then, we propose a static partitioning method that considers different capability of CPU mappers and GPU mappers, and a dynamic scheduling method that deals with a dynamic input size. Compared to a single CPU execution time, the CKY parser on a 14-node Hadoop cluster with 12 CPU cores and 1 GPU per node achieves 245 times speedup. Compared to the execution time on a 14-node Hadoop cluster with 12 CPU cores and no GPU per node, it also achieves 2.5 times speedup. Our proposed approach for both CPU and GPU mapper execution leads to an additional speedup, resulting in total of 2.8 times speedup.】