
地球シミュレータのプログラミングモデル
地球シミュレータのハードウェアは、三階層の並列性(ベクトル処理, PN内の共有メモリ並列処理, PN間並列処理)を持っています。地球シミュレータの性能を十分に引き出すには、これら三つの並列性を最大限に利用するプログラムを開発する必要があります。
表1: 地球シミュレータのプログラミングモデル
|
ハイブリッド |
フラット |
| PN
間並列 |
HPF/MPI |
HPF/MPI |
| PN
内並列 |
マイクロタスク/ OpenMP |
| AP |
自動ベクトル化 |
表 1に示すように、地球シミュレータの三階層並列性を利用するには二つの方法があります。すなわち、「ハイブリッド並列化」と「フラット並列化」です(図
3)。ハイブリッド並列化では、ノード間並列性はHPFまたはMPIで記述し、ノード内並列性はマイクロタスクまたはOpenMPで記述します。したがって、プログラムを書く際に並列性の階層を意識する必要があります。一方で、フラット並列化では、ノード間並列性とノード内並列性の両方をHPFまたはMPIで記述できるため、並列性の階層を意識する必要はありません。一般に、ハイブリッド並列化は性能に優れ、フラット並列化はプログラムのしやすさに優れていると言えます。MPIライブラリとHPFランタイムは、どちらの並列化方法においても効率良く動作するよう最適化されています。
図3. ESにおける2つの並列方式