著者
小田嶋哲哉 李珍泌 朴泰祐 佐藤三久 塙敏博 児玉祐悦 RaymondNamyst SamuelThibault OlivierAumage
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2012-HPC-135, no.9, pp.1-8, 2012-07-25

GPU クラスタ上でのプログラミングは,様々なプログラミングフレームワークが直交しており,複雑になってしまうことが多い.本研究では,XMP をアクセラレータを持つ並列計算機向けに拡張した言語仕様 XMP-dev の一実装として,GPU と CPU によるハイブリッドワークシェアリングを容易に行うことができる XMP-dev/StarPU を提案し,プロトタイプ実装を行う.XMP-dev は,XMP が本来提供している分散メモリノードへのデータと処理の分割・通信の機能に加え,各ノードでの処理の一部を GPU にオフローディングをすることが可能である.しかし,現在の実行モデルでは GPU にオフロードされた部分はすべて GPU により実行され,CPU との協調計算やワークシェアリングを行うことができない.本研究では,StarPU をバックエンドスケジューラとして用い,計算をタスクという単位で GPU や CPU へスケジューリングをすることで,GPU / CPU のワークシェアリングを可能とする.本稿では,現在開発中の XMP-dev/StarPU のプロトタイプコンパイラと同等の動作をするハンドコンパイルしたコードを用いて重力 N 体問題について評価を行う.結果として,GPU/CPU ワークシェアリングは機能しているが性能向上は十分ではなく,大きな要因は GPU と CPU の性能差に対応する十分な問題サイズを与えることが難しいこと,また,これを改善するために何らかの負荷バランス機能が必要であることがわかった.
著者
小田嶋哲哉 李珍泌 朴泰祐 佐藤三久 塙敏博 児玉祐悦 RaymondNamyst SamuelThibault OlivierAumage
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2013-HPC-138, no.25, pp.1-9, 2013-02-14

GPU クラスタ上でのプログラミングは,様々なプログラミングモデルが直交しており,複雑になってしまうことが多い.本稿では,分散メモリ環境向け高水準並列プログラミング言語である XMP を GPU クラスタ等のアクセラレータを持つ並列計算機向けに拡張した言語仕様 XMP-dev において,GPU と CPU によるハイブリッド協調計算を実現する XMP-dev/StarPU を提案,実装を行った.XMP-dev は,ノード間通信をベースとし,データの分散や GPU へのオフローディングが可能な並列言語である.しかし,CPU を計算リソースとして GPU と並行して用いるには複雑なプログラミングが必要である.これに対し,StarPU をバックエンドのスケジューラとすることで,計算をタスクという単位で GPU や CPU へスケジューリングすることによりワークシェアリングが可能になる.本稿では,実際のアプリケーションに XMP-dev/StarPU を適用することで,GPU のみを計算に利用するときよりも 1.1~1.2 倍ほどの高速化が可能であることを示した.また,指示文ベースのプログラミングモデルである XMP-dev/StarPU は,通常のプログラミングよりもコストが大幅に削減できることも示した.