地球シミュレータ 地球シミュレータ
 
 ES-Repository
 CEIST
High Performance Fortran (HPF)

【機能】
地球シミュレータのHPF/SXは、並列プログラミングに精通していない一般の研究者にも、簡単でかつ効率の良い並列プログラミングを行う手段を提供します。HPF/SXは、HPF2.0仕様とその公認拡張に加え、いくつかの独自拡張をサポートしています(図1)。

図1: HPF/SXの機能
HPF/SX独自拡張には、次のような機能が含まれます。

* HALO
有限要素法に代表される、HPFでは並列化が難しいとされる不規則問題のための機能です。不規則問題では、データのアクセスや通信は不規則に行われます。すなわち、メモリ上で不連続な位置にあるデータが連続して処理されます。このようなアクセスや通信は、従来のHPFの機能では効率良く扱うことができません。
これに対し、HALOを用いれば、不規則なアクセスまたは通信が行われる配列要素を明示することができます(図2)。HPF/SXのコンパイラとランタイムシステムは、そのようにユーザが明示した不規則なアクセスと通信を、特別な方法で効率的に処理することができます。

図2: FEMにおけるHALOの例: 分散境界上の節点は、ユーザの宣言に従い、ある一つのプロセッサ上に「実体」として、その他のプロセッサ上にHALOとして割り付けられます。HALOは、REFLECT指示文によって更新した後では、「実体」と同じように参照できます。また、HALOを用いたより効率の良いリダクション演算を行うこともできます。

* MPIインタフェース
MPIライブラリ呼び出しを含む手続きをHPFプログラムから呼び出すことが可能です。この機能により、プログラム中の性能ボトルネックの箇所を、より高速なMPI手続きで置き換え、性能を改善することができます。

* ベクトル化/マイクロタスク指示行
HPF/SXは、いくつかのベクトル化/マイクロタスク指示行を受け付けます。これらの指示行は、より効率の良いベクトル化およびマイクロタスク並列化のために指定できます。