Hastega:Elixirプログラミングにおける超並列化を実現するためのGPGPU活用手法

書誌事項

タイトル別名
  • Hastega: A Method Using GPGPU for Super-Parallelization in Elixir Programming

この論文をさがす

抄録

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を用いてコード生成器を含む処理系を開発する予定である.

Elixir has Flow that is a popular parallel library similar to MapReduce. Flow can realize parallel programming on multi-core CPUs by simple description. We ideate that code description of Flow can be applied to GPGPU easily, and implements prototypes. The SIMD architecture that current GPUs adopt is effective when a single instruction sequence processes a simple, homogeneous and mass data structure, and code using Flow is such a single instruction sequence that processes such a linked-list structure. Thus, we propose the Hastega method, which is a code optimization method by sending such an instruction sequence and a mass array composed of data from the linked-list, and executing them. We develop a benchmark suit of the logistic maps, and evaluate performance of the proposal system using it. We evaluate it using Mac Pro and GCE. We compare Elixir, Hastega, Rust and Python. We get the following results: (1) Hastega is 4.43-8.23 times and 7.43-9.64 times faster than pure Elixir and Python code executed by only CPU, respectively. (2) The performance gap of Hastega is only 1.48-1.54 times compared with Rust. (3) Additionally, Hastega achieves 3.67 times faster than Python. We plan to develop a processing system including a code generator using LLVM based this research.

収録刊行物

キーワード

詳細情報 詳細情報について

  • CRID
    1050564287863192832
  • NII論文ID
    170000150062
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00194155/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ