HPF推進協議会
本ソフトウェア(以降、fhpfと呼びます)には、Linux版とSolaris版があります。どちらも、以下のファイルから構成されています。
·
fhpf(シェルスクリプト)
全体を制御するシェルスクリプトです。flopsとfhpf_msgを呼び出します。
·
flops(バイナリファイル)
コンパイラ本体です。ドライバ制御スクリプトを参照しながらソースプログラムの翻訳を行います。必要に応じてIMライブラリを参照します。
·
fhpf_msg(シェルスクリプト)
メッセージデータを参照し、翻訳時のエラーや警告のメッセージを出力します。
·
f77.script, f90.script(ドライバ制御スクリプト)
flopsの動作を制御するデータです。
·
IMライブラリ(imディレクトリ)
翻訳時に必要に応じてFortranコードに展開されるライブラリです。中間コードの形式で格納されています。
·
メッセージデータ(msgディレクトリ)
メッセージ出力のためのデータが格納されています。
·
サンプルプログラム(sampleディレクトリ)
HPFプログラムのサンプルプログラムと出力例が格納されています。使用方法はユーザーガイドを参照してください。
fhpfを使ってFortranプログラムを作成する手続と、生成した手続から実行可能ファイルを作成する手続を、ここではそれぞれ、HPF翻訳、Fortran翻訳と呼びます。HPF翻訳、Fortran翻訳、および、プログラムの実行は、それぞれ別々の計算機で行うことも可能ですし、同じ計算機で行うことも可能です。
HPF翻訳を行うには、fhpfをインストールして使用します。fhpfをインストールする計算機は、以下の条件を満たす必要があります。
|
Linux版 |
Solaris版 |
CPU |
Intel IA32系 |
SPARC系 |
オペレーティングシステム |
Linux カーネルバージョン2.4以降 |
Solaris 7(SunOS 5.7)またはそれ以降 |
Fortran翻訳は、通常のMPIプログラムの翻訳と同じです。MPI呼出しを含むFortranプログラムが翻訳できる環境を別途用意する必要があります。使用するFortranコンパイラはFortran90仕様をサポートしたものが望ましいですが、FORTRAN77仕様がサポートされていれば制限付きで利用可能です[1]。MPIは、MPI1.1の仕様範囲を満たしていれば十分です。
プログラムの実行は、通常のMPIプログラムの実行と同じです。Fortran翻訳時に結合したMPIライブラリが動作する環境を別途用意する必要があります。fhpfに付属するソフトウェアは、すべてHPF翻訳環境のためのものであり、実行のための環境にインストールしなければならないものはありません。
fhpfは、Linux向け、Solaris向けにそれぞれ、
fhpf_<version>_Linux.tar.gz
fhpf_<version>_Solaris.tar.gz
という名前の圧縮されたtarファイルとなっています。基本的にはこれを展開するだけです。詳しいインストール手順の例は以下の通りです。
1. スーパーユーザになります。ローカルな環境にインストールして個人で使用する場合には個人ユーザIDでも構いません。
2. 展開先のディレクトリにfhpfの圧縮ファイルをコピーし、cdコマンドによりそのディレクトリに移動します。
3. 以下のように、圧縮ファイルを解凍し展開します。同じディレクトリに、fhpfという名前のディレクトリが生成されます。
# gunzip fhpf_<version>_<system>.tar.gz
# tar xvf fhpf_<version>_<system>.tar
x fhpf, 0 bytes, 0 テープブロック
...(略)...
# ls -F ./fhpf
f77.script fhpf* flops* msg/
f90.script fhpf_msg* im/ sample/
#
4. 展開されたファイルについて、必要なら所有者とグループの変更(chown(1), chgrp(1))、アクセス権の変更(chmod(1))などを行います。
5. 個人ユーザID(fhpfの利用者)となり、動作確認を行います。シェルスクリプトfhpfとfhpf_msgは標準的なLinuxとSolarisの利用者を想定して記述されていますが、コマンドのインストール場所や個人ユーザの設定パスが異なるために動作しないことがあるかもしれません。そのような場合には、個人の環境を修正するか、必要ならスーパーユーザとなって、エディタを使ってシェルスクリプトfhpfとfhpf_msgを修正してください。
なお、LAM/MPIを使用する場合には、ドライバ制御スクリプトf77.scriptおよびf90.scriptを以下のように変更してください。LAM/MPIの現在の版では、16バイト実数型および32バイト複素数型は使用できません。
以下の行
pass genMPI -main_sub
に以下のようにオプションを追加。
pass genMPI -main_sub -lam
以上