spml ライブラリインストールガイド

動作環境

spml ライブラリは以下の環境での動作を確認しています.

過去には以下の環境でも動作したことが確認されています. 確認はしていませんが, 現在のバージョンでもおそらく動作すると期待されます.

  • NEC SX-6 + FORTRAN90/SX
  • NEC SX-8 + FORTRAN90/SX
  • NEC SX-8R + FORTRAN90/SX
  • NEC SX-9 + FORTRAN90/SX

インストール作業の概略

spml ライブラリのインストールは以下の様に行ないます. 詳しくは各項目を参照して下さい.

  1. 必要なソフトウェア をインストールします.
  2. ビルドの手引き に従い, ソースからライブラリをビルドします.
  3. インストールの手引き に従い, ライブラリをインストールします.
  4. テストプログラム実行の手順 に従い, インストールされた ライブラリが正常に機能するかどうか確認してください.
  5. パスの設定 を行ってください.

必要なソフトウェア

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 用ライブラリを指定し, 本オプションの ARGFortran 用ライブラリ を指定します.
--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 です.
OMP
spml が用意した, スカラ計算機用のライブラリを使用します.
VEC
spml が用意した, ベクトル計算機用のライブラリを使用します.
SSL2
Fujitsu SSL2 ライブラリの DALU, DLUX を使用します.
SSL2TP
Fujitsu SSL2 スレッド並列ライブラリの DM_VALU, DM_VLUX を使用します.
LAPACK
LAPACK の dgetrf, dgetrs を使用します.
--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