RokkoEigensolverInstallScripts - t-sakashita/rokko GitHub Wiki
Rokko付属の固有値ソルバのインストールスクリプトの使い方
準備:ソルバのインストール先のディレクトリの作成
export PREFIX_ROKKO=$HOME/rokko_solvers
mkdir ${PREFIX_ROKKO}
$HOME/.rokkoinstallerで、インストール・作業用ディレクトリを定義する。
export PREFIX_ROKKO=$WORK/materiapps-intelmpi
export SOURCE_DIR=$WORK/source
export BUILD_DIR=$WORK/build-intelmpi
#export PREFIX_ROKKO=$WORK/materiapps
#export SOURCE_DIR=$WORK/source
#export BUILD_DIR=$WORK/build
上記は環境変数でも設定できる。(同名であれば環境設定の方が優先順位が高い。)
準備:トップのスクリプトの作成
cd development/rokko/3rd-party/install/00_env
bash default.sh
PREFIX_ROKKO(インストール先のディレクトリのトップ)に、rokkoenv.sh
が作成される。
スクリプトの仕様
3rd-party/installに、ソルバごとに以下のように同じ名前のスクリプトがある。
ユーザが実行するインストールスクリプト:
- macos.sh Macで、LAPACK/BLASとして、Accelerate Frameworkを使う場合のスクリプト
- intel-mkl.sh インテルコンパイラでMKLを使う場合のスクリプト。コンパイラはmpiccなどのラッパーがある場合はそれを用いる。MPIラッパーがない場合は、iccを使い、MPI用のリンクオプションを検出する。
- fx10.sh 「京」・FX10でのインストールスクリプト
- centos.sh Redhat系Linuxでのインストール方法。LAPACK/BLASは、yumコマンドでインストールされたものを使う。 実行する際にいるディレクトリは、どこでも良い。(カレントディレクトリが汚されることはない。) LD_LIBRARY_PATHにパスを通す。(動的ライブラリの場合、必要)
インストールスクリプト実行後に実行するスクリプト
- link.sh ライブラリ名_ROOTという環境変数を作成。リンクを張る。
内部で使用されるスクリプト(ユーザは直接実行しない。)
- setup.sh ダウンロード(できる場合)と解凍を行う。必要な場合、富士通コンパイラ向けのパッチの適用も行う。
- *.patch 自動であてられるパッチ(主に「京」/FX10用)
- version.sh インストールするソルバのバージョン番号、パッチのバージョン番号を与える
インストール先のディレクトリ名:
固有値ソルバ名-ソルバのバージョン-パッチのバージョン
EigenExaの場合:$PREFIX_ROKKO/eigenexa-2.2b-1
注:パッチのバージョンは、パッチ無しを0として数える。
ビルド時に、$HOME/buildにRelase, Debug用にディレクトリを作る。
例:EigenExa
ディレクトリ構造
- eigenexa: eigenexa-2.2b-1へのリンク
- eigenexa-2.2b-1/
- Release
- Debug
- eigenexavars.sh
環境変数
EIGENEXA_ROOTは、eigenexa-2.2b-1/を指す。
例:PETSc(SLEPcで必要)
インストール手順
機種に合わせて、以下のいずれかを実行
sh rokko/3rd-party/install/PETSc/macos.sh
sh rokko/3rd-party/install/PETSc/fx10-interact.sh
sh rokko/3rd-party/install/PETSc/intel-mkl.sh
sh rokko/3rd-party/install/PETSc/centos.sh
ディレクトリ構造
petsc/ petsc-3.5.2-0/へのリンク
petsc-3.5.2-0/Debug
/Release
/petsccvars.sh
例:SLEPc
インストール手順
まず、PETScをインストールしておく。 SLEPcのインストールスクリプトは、機種によらず共通(PETScインストール時の設定を自動で取り込むため):
sh rokko/3rd-party/install/SLEPc/default.sh
リンクを張る:
sh rokko/3rd-party/install/SLEPc/link.sh
ディレクトリ構造
slepc/ slepc-3.5.3-0/へのシンボリックリンク
slepc-3.5.3-0/Debug
/Release
/slepcvars.sh
例:Trilinos
インストール手順
機種に合わせて、以下のいずれかを実行
sh rokko/3rd-party/install/Trilinos/macos.sh
sh rokko/3rd-party/install/Trilinos/fx10-interact.sh
sh rokko/3rd-party/install/Trilinos/intel-mkl.sh
sh rokko/3rd-party/install/Trilinos/centos.sh
ディレクトリ構造
petsc/ petsc-3.5.2-0/へのリンク
petsc-3.5.2-0/Debug
/Release
/petsccvars.sh
link.shによって張られるシンボリックリンク
DebugやReleaseの親ディレクトリ ${PREFIX_ROKKO}/rokkoenv.d
eigenexavars.sh@ -> rokko_solvers/eigenexa/eigenexavars.sh
petscvars.sh@ -> rokko_solvers/petsc/petscvars.sh
slepcvars.sh@ -> rokko_solvers/slepc/slepcvars.sh
デバッグ ${PREFIX_ROKKO}/rokkoenv-Debug.d/
eigenexavars.sh@ -> /rokko_solvers/eigenexa/Debug/eigenexavars.sh
petscvars.sh@ -> /rokko_solvers/petsc/Debug/petscvars.sh
slepcvars.sh@ -> /rokko_solvers/slepc/Debug/slepcvars.sh
リリース ${PREFIX_ROKKO}/rokkoenv-Release.d/
eigenexavars.sh@ -> /rokko_solvers/eigenexa/Release/eigenexavars.sh
petscvars.sh@ -> /rokko_solvers/petsc/Release/petscvars.sh
slepcvars.sh@ -> /rokko_solvers/slepc/Release/slepcvars.sh
Tips
コンパイラごとにソルバのインストールディレクトリを分ける事もできる。
メモ
Elemental-0.85のmake install時における、python用のラッパーのコピー
- pythonラッパーを、pythonのインストールディレクトリにインストールする。そのため、ルート権限が必要となる。
- Rokkoで使うElementalのlibmrrrなどは、pythonラッパーの後にインストールされる。
- Pythonラッパーの生成を防止する方法、ルート権限が必要なファイルのコピーを省略する方法はあるか?
ライブラリを再インストールするときの注意
LD_LIBRARY_PATH
やDYLD_LIBRARY_PATH
に古いバージョンのディレクトリがある場合は、外しておく。- さもないと、ライブラリのビルド時に、依存する下部のライブラリがリンクされてしまう。
- 例:Elementalのlibmrrrなど
- ライブラリに含まれるライブラリは、lddコマンドで確認できる。