GPU上のMapReduceを利用した大規模データ処理の最適化

Bibliographic Information

Other Title
  • Optimization of Large Data Processing Using MapReduce on a GPU

Search this article

Abstract

本研究では,GPU上で実装された並列分散処理フレームワークMapReduceによる大規模データ処理の最適化手法を提案する.一般にGPUのメモリサイズはメインメモリよりも小さく,大規模なデータを一度にすべてGPUのメモリに転送して処理を行うことは困難である.そこで本研究では,データを複数のチャンクに分割してGPU上で繰り返しMapReduce処理を行う際の最適な分割粒度をコストモデルを用いて明らかする.評価実験の結果,GPUのメモリに格納して計算ができ得る最大のサイズで分割を行うよりも,計算時間の観点からより小さなサイズで分割を行うことがよいと判明した.さらに,処理中に最適な分割粒度を動的に推定する動的推定手法を提案する.本研究で評価を行ったBM25による語の重み付け計算タスクでは動的推定手法の計算時間を,真の最適値でデータを分割したときの計算時間の最大1.13倍,整数値ソートタスクでは1.46倍に抑えることができた.

We present two optimization methods for processing a large amount of data with MapReduce using a graphics processing unit (GPU). It is difficult to transfer a large amount of data to the GPU memory (VRAM) and process them at a time, because the VRAM size is smaller than that of main memory in most cases. Thus, we investigate how to divide the data optimally with a cost model into multiple chunks so that each chunk fits into the VRAM of the GPU and can be processed efficiently with MapReduce on it. The experimental result showed that it exists an optimal chunk size which is smaller than the maximum one that GPU can store, and we can optimize it with our static optimization method. Moreover, we present a dynamic chunk size estimation method which finds an optimal chunk size online, and evaluated it. As a result, the dynamic chunk size estimation method could execute in 1.13x longer time for a term weighting task and in 1.46x for a sorting task compared to their ideal cases.

Journal

Related Projects

See more

Details 詳細情報について

Report a problem

Back to top