MapReduce Architecture for a Single Computing Node of Multiprocessors
Hyo Chan Song · 2013
최근의 CPU 마이크로 아키텍처 디자인의 패러다임은 온-칩 멀티코어 프로세서와 NVIDIA’s Tesla 및 Intel’s Xeon Phi 와 같은 매니코어 코-프로세서로 변화하고 있다. 한편, MapReduce 프레임워크는 저 비용 노드들의 대규모 클러스터 기반의 빅 데이터 분석에 광범위하게 사용되고 연구 되고 있다. 본 논문은 다수의 멀티코어 CPU 들과 매니코어 들로 구성되어 있는 단일 노드를 프로세서들의 클러스터로 간주하여 Hybrid-core based big Data (Real-time) Analysis (HYDRA)라는 새로운 MapReduce 프레임워크를 제안한다. 이때, 하나의 프로세서는 하나의 노드의 역할을 수행한다. HYDRA 는 현대의 이기종 코어 시스템의 컴퓨팅 파워를 최대한 활용하도록 설계됨으로써 단일 노드상의 HYDRA 가 소규모의 다중 노드 클러스터상의 MapReduce 와 유사한 성능을 발휘할 수 있도록 한다. 특히, HYDRA 는 공유 메모리 아키텍쳐를 기반으로 하고 있어서 기존의 MapReduce 의 셔플 단계에서 발생할 수 있는 네트워크를 통한 과도한 데이터 전송 비용을 가지지 않는다. 본 논문은 HYDRA 프레임워크 하에서 Processor As A Node (PAAN) 와 GPU Mapper CPU Reducer (GMCR)의 두 가지 전략을 제안한다. PAAN 은 하나의 CPU 또는 를 하나의 컴퓨팅 노드로 간주하는 전략이다. 반면, GMCR 은 들은 맵퍼 노드들로서만, CPU 들은 리듀서 노드들로서만 작동시키는 전략이다. 제안한 두 전략들은 (1) 서로 다른 특성을 지닌 CPU 와 사이의 협력 문제, (2) 그들 프로세서들이 가진 서로 다른 메모리 계층 구조를 관리하는 문제, (3) CPU 와 사이의 데이터 송/수신 비용을 줄이는 문제들에 대한 해결책들을 제시한다. 마지막으로 다양한 실험들의 결과를 통해 제안한 HYDRA 가 소규모 클러스터(노드 개수 8 개) 상에서의 MapReduce 보다 14 배 이상 좋은 성능을 발휘함을 보인다. ⓒ 2013 DGIST