Spark RDD処理のためのローカル及びリモートGPUを用いた高性能化

大野 泰弘  森島 信  松谷 宏紀  

誌名
電子情報通信学会論文誌 D   Vol.J101-D   No.12   pp.1504-1516
発行日: 2018/12/01
Online ISSN: 1881-0225
DOI: 10.14923/transinfj.2017JDP7077
論文種別: 論文
専門分野: 計算機システム
キーワード: 
Spark,  GPU,  キャッシュ,  PCIe over 10GbE,  

本文: PDF(2MB)
>>論文を購入


あらまし: 
Apache Sparkはビッグデータ向けの分散処理フレームワークである.Sparkの処理においては,インメモリ型のRDD (Resilient Distributed Datasets)と呼ばれるデータ構造が利用される.本論文では,GPU (Graphics Processing Unit)を用いてSpark RDD操作の計算インテンシブ処理を高速化することを提案する.GPUでRDDを処理するために,RDDを配列データに変換し,その配列をGPUに転送しGPUで処理を行う.配列を作成する際,元のRDDのIDと作成された配列をホストメモリにキャッシュする.これにより同一RDDのデータ変換オーバヘッドを削減できる.また,転送したデータをGPUデバイスメモリで保持し続けることで,GPUへのデータ転送オーバヘッドを削減できる.更に,本論文では通常のGPU (ローカルGPU)に加え,PCIeを通して10Gbps Ethernet越しに接続されたGPU (リモートGPU)を活用する.リモートGPUへのデータ転送オーバヘッドを削減するため,ローカルGPUとリモートGPUに対するRDDキャッシュポリシーも提案する.本論文では,複数のリダクション処理とトランスフォーメーション処理をGPU上で実装し,通常のSpark処理と比較して最大21.4倍の性能向上を達成した.また,複数のRDDキャッシュポリシーによる性能向上率の比較も行った.