異機種並列分散システム向けプログラミング環境
中田登志之
末広謙二 並列分散システムNEC研究室(nakata@ccm.cl.nec.co.jp,
suehiro@ccm.cl.nec.co.jp)
1. はじめに
大規模な複合シミュレーションには、ベクトル型スーパーコンピュータやスカラ型並列コンピュータなど種々の計算機を高速ネットワークで接続し、それらを適材適所に利用して計算する形態が適している。しかしこのような異機種並列分散システムを効率よく利用するには、データの割り当てや処理のスケジューリングなどにきめ細かな制御が必要となるため、プログラミングは困難である。我々は単一システムと同様のシームレスなプログラミングインタフェースで容易に異機種並列分散システム向けのプログラムを開発することができる、プログラミング支援環境を構築した。
2.プログラミング環境の概要
我々が開発中のプログラミング環境(図1)は、 3つの構成要素が連携して機能する。本章で全体の概要を述べ、次章でツール部分について述べる。
図1 シームレスプログラミング環境
(1)シームレス並列化支援ツール
通常の逐次Fortranで記述されたプログラムを対話的に並列化し、High Performance Fortran
(HPF)コードを生成するツールである。
(2)シームレス並列化コンパイラ
異機種システム向けに拡張されたHPF言語のコンパイラである。拡張された言語では、異機種プロセッサへの明示的なデータや処理の割り当てが記述できる。
(3)シームレス並列ライブラリ
異機種システムのノード間/内を意識せずシームレスに通信を記述できるMessage Passmg Interface(MPI)のライブラリである。
3シームレス並列化支援ツール
本ツールは以下の特徴を持つ。
(1)ビジュアルで対話的な並列化支援
プログラムのさまざまな解析情報をビジュアルに表示する。また、マウス操作により、並列化に関する指示をユーザが簡単に与えることができる。
(2)自動データレイアウト
並列プログラミングの最大の難関である、プロセッサへのデータの分散配置を、自動的に決定する機能を持つ。前述のビジュアルインタフェースによりユーザが要所の指示を行なえば、それに合わせて残りの部分のしイアウトを最適に決定する。
(3)静的性能予測
実機による実行の前に、現在並列化作業中のプログラムの性能を予測し、表示することができる。
(4)実行時情報を利用したプログラム最適化
実機によるプログラムの実行時に、進捗状況や変数値等をモニタリングし、リアルタイム表示する。また、それらの実行時情報をフィードバックしてプログラムの最適化に利用できる。
4・性能評価
SX-4とCenju-4を接続した実験システムでの評価では、よいスケーラビリテイが得られた(図2)。
図2 NPB EPによる性能評価
|