- 著者
-
山崎 進
森 正和
上野 嘉大
高瀬 英希
- 雑誌
- 情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
- 巻号頁・発行日
- vol.12, no.1, pp.15, 2019-01-30
ElixirではFlowというMapReduceの並列ライブラリが普及している.Flowを用いると簡潔な表現でマルチコアCPUの並列性を活用できる.我々はFlowによるプログラム記述がGPGPUにも容易に適用できるという着想を得て,OpenCLによるプロトタイプを実装した.現行のGPUで採用されるSIMDでは,単純な構造で均質で大量にあるデータを同じような命令列で処理する場合に効果を発揮する.一方,Flowでは,そのようなリストに対し一連の命令列で処理する.そこで,このような命令列と,リストを配列化したデータをGPUに転送・実行することで高速化を図る手法,Hastegaを提案する.そこで,ロジスティック写像を用いたベンチマークプログラムを開発し,期待される性能向上を評価した.Mac ProとGCEで評価した.言語はElixir,Hastega,Rust,Pythonで比較した.その結果,次の3つの結果が得られた:(1) HastegaはElixir単体のコードと比べて4.43~8.23倍高速になった(2) HastegaはRustと比べて,1.48~1.54倍程度遅くなっただけである(3) HastegaはPythonのコードと比べて,3.67倍高速である.今後,本研究で得た知見を元にLLVMを用いてコード生成器を含む処理系を開発する予定である.