[目次] [1ページ目] [前ページ] [次ページ] [OHP] [質疑応答]
(4/8)

4.並列計算

4.1 並列プログラム

 現在PCクラスタで用いられている並列プログラムの手法は、言語仕様を変更せず並列計算(データ通信等)に必要な部分をサブルーチンや関数を用いて記述する。並列計算に必要な部分の記述方法としては、MPI(Message Passing Interface) やPVM(Parallel Virtual Machine)という標準API(Application Programming Interface)を用いることが多い。「姫野ベンチマーク」(Fortran 77)をMPIで並列化を行った。MPIとは、並列プログラミングの記述方法等を統一すべくMPIフォーラムで標準化された並列プログラム記述環境である。MPIを用いて記述されたプログラムは、現在稼動しているほとんどの並列計算機で動作する(はずである)。

4.2 姫野ベンチマークの並列化

 今回の並列化のコンセプトは以下の通りである。

  1. とりあえず並列で動作させる
  2. データ分割はしない、手続き分割のみ
  3. それなりのパフォーマンスを出す


 姫野ベンチマークは、3D Poisson方程式をヤコビ法で解いているため、並列化には領域分割法を用いた。ヤコビ法は、領域ごとに同時に分散計算させても結果に変動はない。分割方法には、最も単純な一次元の分割を用いた。手続き分割のみを行うのでPE(Processing Element :この場合PC 1台)には、無駄なデータ領域を持つことになる。これらの事を行うのに必要なMPIのサブルーチンは以下の通りである。



 これらサブルーチンの文法と応用に関しては、参考文献(5)を参照して頂きたい。以下にこれらの並列計算の流れを図示したものを示す。ただし、図は2次元の場合とする。




[目次] [1ページ目] [前ページ] [次ページ] [OHP] [質疑応答]