著者
小田嶋哲哉 李珍泌 朴泰祐 佐藤三久 塙敏博 児玉祐悦 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 は,通常のプログラミングよりもコストが大幅に削減できることも示した.
著者
小田嶋 哲哉 チャントゥァンミン 李 珍泌 朴 泰祐 佐藤 三久
出版者
情報処理学会
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC) (ISSN:21862583)
巻号頁・発行日
vol.2011, no.12, pp.1-8, 2011-03-08

高い演算性能及びメモリバンド幅をもつGPUを搭載したGPUクラスタが高性能計算プラットホームとして広く利用されている.GPUクラスタではプログラミングが非常に複雑になることや,計算負荷がGPUまたはCPUのどちらかに偏り,計算リソース全体を有効利用しにくいという問題がある.そこで,分散メモリシステム向けの並列言語であるXcalableMPをGPU向けに拡張して,GPUクラスタ等のヘテロジニアス環境に適応させることを検討する.本稿ではその予備評価として,XcalableMPによるGPU/CPU協調計算を行い,典型的なHPCアプリケーションであるN体問題と行列積計算を対象に,GPUとCPUへの計算負荷分散による最適化を行い,これらによる協調計算の可能性を検討した.その結果,2ノード・2GPUのシステム上でGPUに割り当てるデータを50%から60%にしたところ,最大で約1.7倍の高速化を得ることができた.As shown in TOP500 List at November 2010, GPU clusters have been recognized as highly cost-effective HPC resources. However, the programming on GPU cluster requires much harder effort than ordinary PC clusters because of complicated heterogeneous coding with combination of CUDA/OpenCL, OpenMP and MPI, for example. In order to provide a solution for this, we will consider an extension of parallel programming language XcalableMP for GPU cluster computing. In this paper, we propose an textended notation of XcalableMP for data and process distribution in a GPU cluster. We also preliminarily evaluate the performance enhancement by a cooperated computing with GPU and multi-core CPU on typical HPC applications, N-body calculation and matrix multiplication. As a result, we confirmed the maximum of 1.7 times higher performance when we distribute the 50 to 60% of computation to GPU, compared with the case with 100% of computation only by GPU.
著者
TranMinhTuan 李珍泌 小田嶋哲哉 朴泰祐 佐藤三久
雑誌
研究報告ハイパフォーマンスコンピューティング(HPC)
巻号頁・発行日
vol.2011, no.53, pp.1-8, 2011-07-20

GPU アーキテクチャの汎用化と高速化によって,GPU クラスタは高いコストパフォーマンスと演算性能,省電力化を HPC 分野にもたらしている.これまで汎用計算における GPU の高速化効果を目的とするプログラミング言語モデルの拡張やライブラリが数多く提案されてきた.しかし,これらは GPU を搭載するシングルノード環境を対象とする拡張が多く,GPU クラスタなどのメモリ分散システムを対象とするものがまだ少ない.multi-node GPU クラスタにおける高い性能プログラミングは通常の 1 ノード内のホストーGPU の拡張だけでは不十分,それぞれのノードにまたがる GPU どうしのプログラミングも意識する必要がある.そこで,現在,我々は Partitioned Global Address Space(PGAS) プログラミングモデルをベースとした並列プログラミング言語 XcalableMP を GPU クラスタに適用可能とするための拡張を行っている.本稿では,行列積計算を対象に,GPU クラスタにおける XMP-ACC 拡張のプログラミングコストと性能について調査した.その結果,4 ノードの GPU クラスタにおいて,CPU のみを用いた XcalableMP プログラムよりも,それに数行の XMP-ACC 指示文の追加したプログラムのほうが約 42 倍の速度向上が得られた.