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 &reg; Compilers
      □ The Portland Group

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

  • 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 を利用するためには, 以下のソフトウェアを事前にインストールしておく
必要があります.

  • netCDF, version 3.6 以上
  • gtool5
  • ispack

ビルドの手引き

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 です.

    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

