著者
高瀬 英希 上野 嘉大 山崎 進
雑誌
研究報告組込みシステム(EMB) (ISSN:2188868X)
巻号頁・発行日
vol.2018-EMB-48, no.5, pp.1-8, 2018-06-22

2012 年に登場した Elixir は,Erlang VM 上で動作する関数型言語であり,分散システム対応でスケールしやすく,軽量で耐障害性が高いという特徴がある.習熟容易性および開発生産性が高く,並列処理のプログラミングが容易に実現できる.Elixir の Web アプリケーションフレームワークとしては Phoenix が知られている.本稿では,IoT システムの構築における Elixir の有用性を議論する.IoT システムにおいて多く採用される IoT ボードに Elixir / Phoenix の実行環境を整備し,種々の性能を評価できる動作するベンチマークスイートを用意する.これによって各種 IoT ボードにおける Elixir / Phoenix の実行性能を基礎評価し,IoT システムへの導入に向けた有用性を定量的に議論する.評価の結果,Elixir の並列処理性能は IoT システムにおいても発揮されること,Phoenix サーバについても IoT システムに十分な応答性能を得られることが示された.
著者
山崎 進 森 正和 上野 嘉大 高瀬 英希
雑誌
情報処理学会論文誌プログラミング(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を用いてコード生成器を含む処理系を開発する予定である.