A Study on Productive and Reliable Programming Environment for Distributed Memory System

(邦訳:分散メモリシステムのための高生産・高信頼プログラミング環境に関する研究)

李 珍泌
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クラスタの並列化を同時に記述することが可能になる.


(2012年8月30日受付)
 
取得年月日:2012年3月
学位種別 :博士(工学)
大  学 :筑波大学

推薦文:(ハイパフォーマンスコンピューティング研究会)


本論文は,現在の超並列システムの主流である分散メモリシステム上で,逐次プログラムの移植を容易にする新言語を提案し,コンパイラを実装をしている.博士課程学生の研究にも関わらず,研究プロジェクトにおけるプロトタイプコンパイラ実装と一般公開を行っており,国際的にも高く評価される研究となっている.

著者からの一言


博士論文を推薦していただき,ありがとうございます.並列計算機のプログラミング環境はGPUなどの新しいハードウェアの登場に より新しい発見や問題も多く,大変チャレンジングで面白い分野になっています.現在は自分の研究分野からすこし離れていますが,いずれ,この 分野で世界で通用できる研究ができればと思っております.