(邦訳:分散メモリシステムのための高生産・高信頼プログラミング環境に関する研究)
李 珍泌 MACROGRAPH,研究員 |
[背景]高性能並列計算機の大規模化と複雑化
[問題]並列プログラミングのコストの増加
[貢献]プログラミング環境の提案による生産性の向上
津波や地震のシミュレーションを正確に行うには膨大な計算が必要である.その計算時間を短縮させるために大規模な計算機を用いることが多い.このように大規模計算機を用いて膨大な計算を短時間で行う技術を高性能コンピューティングと呼ぶ.近年,高性能コンピューティングの分野では 「PCクラスタ」という並列計算機が広く使われている.PCクラスタとは市販されているパソコンと同等の計算ノードをネットワーク技術を用いて互いに接続することで構成される並列計算機のことである.多数の計算ノードを導入することで,台数に比例した計算性能が期待できる.
PCクラスタの性能を十分に引き出すためには,すべての計算ノードを用いて計算を行わなければならない.そのために問題を各計算ノードに割り当て,計算を並列 に行う.他のノードが持つデータが必要になる場合にはネットワークを介したノード間通信が行われる.このような作業を記述するにはMessage Passing Interface(MPI)という並列通信ライブラリが広く使われている.MPIではノード間のデータの移動を記述することが可能であるが,問題領域や処理の分割を記述する機能は備わっていない.それらの作業はプログラマが記述しなければならないが,他の助けを借りずにすべてを記述するには手間がかかる.そのため,生産性の低さが問題となっている.
本研究は従来の手法であるMPIより簡単で生産性の高い並列プログラミング環境を提供することを目指すものである.そのために,並列プログラミング言語XcalableMP(XMP)の処理系を作成し, 評価を行った.XMPはXcalableMP Specification Working Groupから提案された並列プログラミング言語で,従来のC言語やFortran言語を独自の指示文で拡張している.XMPでは単一ノードで動作する逐次コードに指示文を追加することでPCクラスタ向けの並列プログラムの作成を行う.XMPの指示文はPCクラスタ上で頻繁に行われるデータ並列化やタスク並列化を表すものであり,広い範囲のアプリケーションを指示文の挿入という簡潔な方法で記述する.本研究ではC言語をベースとしたXMPの処理系を実装している.処理系は逐次のCコードとXMPの指示文を解析してPCクラスタで動作する並列コードに変換する.
ビデオカードであるGPUの性能が上がるにつれてその演算性能に着目し,PCクラスタでの採用が増えている.多数の計算コアを持つGPUの操作には専用の並列言語モデルが必要である.ユーザはPCクラスタの並列化やGPUの並列化を同時に記述しなければならず,並列化の生産性が更に問題になってきている.本研究ではGPUを含めた演算加速装置の並列化を記述できるようにXMPの言語仕様を拡張し,その処理系の実装を行った.それにより1つの言語モデルの中でGPUとPCクラスタの並列化を同時に記述することが可能になる.
PCクラスタの性能を十分に引き出すためには,すべての計算ノードを用いて計算を行わなければならない.そのために問題を各計算ノードに割り当て,計算を並列 に行う.他のノードが持つデータが必要になる場合にはネットワークを介したノード間通信が行われる.このような作業を記述するにはMessage Passing Interface(MPI)という並列通信ライブラリが広く使われている.MPIではノード間のデータの移動を記述することが可能であるが,問題領域や処理の分割を記述する機能は備わっていない.それらの作業はプログラマが記述しなければならないが,他の助けを借りずにすべてを記述するには手間がかかる.そのため,生産性の低さが問題となっている.
本研究は従来の手法であるMPIより簡単で生産性の高い並列プログラミング環境を提供することを目指すものである.そのために,並列プログラミング言語XcalableMP(XMP)の処理系を作成し, 評価を行った.XMPはXcalableMP Specification Working Groupから提案された並列プログラミング言語で,従来のC言語やFortran言語を独自の指示文で拡張している.XMPでは単一ノードで動作する逐次コードに指示文を追加することでPCクラスタ向けの並列プログラムの作成を行う.XMPの指示文はPCクラスタ上で頻繁に行われるデータ並列化やタスク並列化を表すものであり,広い範囲のアプリケーションを指示文の挿入という簡潔な方法で記述する.本研究ではC言語をベースとしたXMPの処理系を実装している.処理系は逐次のCコードとXMPの指示文を解析してPCクラスタで動作する並列コードに変換する.
ビデオカードであるGPUの性能が上がるにつれてその演算性能に着目し,PCクラスタでの採用が増えている.多数の計算コアを持つGPUの操作には専用の並列言語モデルが必要である.ユーザはPCクラスタの並列化やGPUの並列化を同時に記述しなければならず,並列化の生産性が更に問題になってきている.本研究ではGPUを含めた演算加速装置の並列化を記述できるようにXMPの言語仕様を拡張し,その処理系の実装を行った.それにより1つの言語モデルの中でGPUとPCクラスタの並列化を同時に記述することが可能になる.

(2012年8月30日受付)