spml ライブラリインストールガイド
動作環境
spml ライブラリは以下の環境での動作を確認しています.
- OS
- Debian GNU/Linux >= ver. 6,
- Red Hat Enterprise Linux >= ver.6
- Fortran Compiler
- GFortran >= ver. 4.7
- with OpenMPI 1.4.5, 1.6.5
- with MPICH2 1.0.7
- Intel ® Compilers
- The Portland Group
- GFortran >= ver. 4.7
過去には以下の環境でも動作したことが確認されています. 確認はしていませんが, 現在のバージョンでもおそらく動作すると期待されます.
- NEC SX-6 + FORTRAN90/SX
- NEC SX-8 + FORTRAN90/SX
- NEC SX-8R + FORTRAN90/SX
- NEC SX-9 + FORTRAN90/SX
インストール作業の概略
spml ライブラリのインストールは以下の様に行ないます. 詳しくは各項目を参照して下さい.
- 必要なソフトウェア をインストールします.
- ビルドの手引き に従い, ソースからライブラリをビルドします.
- インストールの手引き に従い, ライブラリをインストールします.
- テストプログラム実行の手順 に従い, インストールされた ライブラリが正常に機能するかどうか確認してください.
- パスの設定 を行ってください.
必要なソフトウェア
spml を利用するためには, 以下のソフトウェアを 事前にインストールしておく必要があります.
ビルドの手引き
TGZ パッケージの展開
適当な作業ディレクトリでソースアーカイブを展開します. ソースは spml-バージョン というディレクトリに展開されます.
$ tar xvzf spml_current.tgz
または
$ zcat spml_current.tar.gz | tar -xvf -
Fortran コンパイラの指定
環境変数 FC に使用する Fortran コンパイラを指定してください. 以下は, 利用するコンパイラが gfortran の場合です.
sh, bash の場合
$ FC=gfortran ; export FC
csh, tcsh の場合
$ setenv FC gfortran
最適化やデバッグのためのオプションは環境変数 FCFLAGS に設定してください. 以下の例は gfortran を使用する場合の高速化と 並列化のためのオプションです.
sh, bash の場合
$ FCFLAGS="-O3 -fopenmp" ; export FCFLAGS
csh, tcsh の場合
$ setenv FCFLAGS "-O3 -fopenmp"
configure の実行
展開されたディレクトリに移動し, ./configure
を実行します.
--with-netcdf=
には netCDF ライブラリのパスを指定します. (以下の例は /usr/local/netcdf/lib/libnetcdf.a にライブラリがある 場合のものです).--with-gtool5=
には gtool5 ライブラリのパスを指定します. (以下の例は /usr/local/gtool5/lib/libgtool5.a にライブラリがある 場合のものです).--with-ispack=
には ispack ライブラリのパスを指定します. (以下の例は /usr/local/ispack/lib/libisp.a にライブラリがある 場合のものです).
このコマンドによって Makefile
が生成されます.
netCDF ライブラリが共有ライブラリである場合,
--with-netcdff=
も指定する必要があるかもしれません.
詳しくは下記のオプションの詳細を参照してください.
$ ./configure --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a \ --with-gtool5=/usr/local/gtool5/lib/libgtool5.a \ --with-ispack=/usr/local/ispack/lib/libisp.a
spml を MPI 用にビルドする場合には, MPI 用にビルドする場合には を参照してください.
インストール先などを変更したい場合は, 以下のように --help
オプ
ションをつけることで, 指定可能なオプションリストが表示されます.
$ ./configure --help
主なオプションに関しての説明です.
--with-netcdf=
ARG- ARG に ビルドに必要な netCDF ライブラリ を指定します. 必ず明示的に指定する必要があります.
--with-netcdff=
ARG- netCDF ライブラリが共有ライブラリである場合, C 用ライブラリと Fortran 用ライブラリとに分かれてビルドされている場合があります. その際は, 上記オプションに C 用ライブラリを指定し, 本オプションの ARG に Fortran 用ライブラリ を指定します.
--with-netcdf-include=
ARG- 必要ならば netCDF ライブラリの Fortran 用ヘッダ(netcdf.inc) を指定します.
--with-gtool5=
ARG- ARG に ビルドに必要な gtool5 ライブラリ を指定します. 必ず明示的に指定する必要があります.
--with-ispack=
ARG- ARG に ビルドに必要な ispack ライブラリ を指定します. 必ず明示的に指定する必要があります.
--with-ssl2=
ARG--with-ssl2tp=
ARG--with-lapack=
ARG- ARG に 固有値問題を解くために使用するライブラリ を指定します.
--with-lumatrix=
ARG- ARG に連立一次方程式を解くために使用するライブラリを指定します. デフォルトは OMP です.
--with-fftw=
ARG--with-rfftw=
ARG- フーリエ変換に FFTW ver.2 を使用する場合に指定します. ispack を -FFTW2 付きでビルドしている場合には指定する必要があります.
--with-mpifc=
ARG- MPI 並列を有効にする場合に指定します.
--with-mpiexec=
ARG- MPI 並列によるテストプログラムを実行する際に指定します.
--prefix=
ARG-
ARG にライブラリやモジュール, 実行ファイルのインストール先の
ディレクトリのプレフィックスを指定します.
デフォルトは
/usr/local/spml
です. --host=
ARG- クロスコンパイルを行う場合には, パッケージが実行されるシステムタイプ名 を ARG に指定します.
--libdir=
ARG-
ARG にライブラリのインストール先のディレクトリを指定します.
デフォルトは
/usr/local/spml/lib
です. --includedir=
ARG-
ARG にモジュール情報ファイルのインストール先のディレクトリ
を指定します. デフォルトは
/usr/local/spml/include
です. --bindir=
ARG-
ARG に実行ファイルのインストール先のディレクトリを指定します.
デフォルトは
/usr/local/spml/bin
です. --docdir=
ARG-
ARG にドキュメント/マニュアルのインストール先のディレクトリを指定します.
デフォルトは
/usr/local/spml/doc
です.
MPI 用にビルドする場合には
spml を MPI 用にビルドする場合にはまず MPI ライブラリをシステムに インストールしてください.
次に gtool5 を MPI サポートを有効にして install します. 詳細については gtool5 の install ドキュメントを参照して下さい.
Makefile を作成する場合には, 環境変数 FC に mpif90 などの MPI 用コンパイル コマンドを指定してください. そして, 以下のように configure にはオプション --with-mpiexec, --with-mpifc を指定して下さい
$ ./configure --with-netcdf=/usr/local/netcdf/lib/libnetcdf.a \ --with-gtool5=/usr/local/gtool5/lib/libgtool5.a \ --with-ispack=/usr/local/ispack/lib/libisp.a \ --with-mpifc=/usr/local/mpich/mpif90 \ --with-mpiexec=/usr/local/mpich/mpiexec
その他のオプションなどについては, configure の実行 を参照してください.
ソースコードのコンパイル
configure を実行すると Makefile が更新されます. make を実行してコンパイルを行なって下さい.
$ make
インストールの手引き
カレントディレクトリで以下のコマンドを実行してください. システム領域にインストールする場合には管理者権限が 必要です. (デフォルトの場合はシステム領域にインストールします).
# make install
テストプログラム実行の手順
カレントディレクトリにおいて, 以下のコマンドを実行してください.
エラーが生じずに
" *** Compilation and installation are succeeded !! ***
"
というメッセージが表示されればインストールは完了です.
$ make test
パスの設定
上記のように正しくインストールが行われたら,
spmfrt というシェルスクリプトが --prefix=
ARG
で指定されたディレクトリ以下の bin ディレクトリ ARG/bin
に作成されているはずです.
( --prefix=
を指定しなかった場合は
/usr/local/spml/bin/
以下).
このディレクトリへのパスを通してください.
以下は /usr/local/spml/bin/
以下に spmfrt
がインストールされた場合の例です.
sh, bash
$ PATH=$PATH:/usr/local/spml/bin ; export PATH
csh, tcsh
$ setenv PATH $PATH:/usr/local/spml/bin
spmfrt は spml ライブラリを利用した Fortran プログラムを 簡単にコンパイル, リンクするためのシェルスクリプトです. これまで利用していた Fortran コンパイラのコマンドの代わりに spmfrt を用いることで, 自動的に spml ライブラリへの リンク, モジュール群へのディレクトリ指定を行ってくれます.
$ spmfrt test.f90 /usr/bin/gfortran -I/usr/local/spml/include \ -I/usr/local/gtool5/include \ -I/usr/local/netcdf/include \ -O2 -fopenmp test.f90 \ -L/usr/local/spml/lib \ -lspml \ -L/usr/lib/gtool5/lib \ -L/usr/local/netcdf/lib \ -L/usr/local/ispack/lib \ -lgtool5 -lnetcdf -lispack