Gadget-2をLinux (BoW/Debian) にインストールしました (2017年6月). 基本的には日々ubuntuに感謝しつつ様に書いてある通りですが, いくつかうまくいかない点があったので, 改めてここにインストール方法を書いておきます.
0. 最初に
Gadget-2の動作にはFFTW2, GSLライブラリが必要です. MPIも必要ですが, ここではインストール済みと仮定します (Debian系の場合apt install openmpi-binあたりのコマンドで一発だと思います). またアウトプットをHDF5形式で書き出す場合にはHDF5関連ライブラリも必要です (これがなくてもバイナリ形式で書き出すことはできます). 管理者権限がある場合にはこれらのライブラリを/usr/local/
以下に展開すればよいと思います (そのときライブラリは/usr/local/lib/
に生成されます).
一方, 管理者権限がない場合, また管理者権限があっても自分しか利用しないと思われる場合, ライブラリを
/home/username/local/
以下に展開すれば良いのかな, という気がします.
ここでは/usr/local/
に展開するものと思ってコマンドを記述しますが, 自分のホームに展開する場合は適宜読み替えてください.
なお, /usr/local
に展開する場合にはsudo make install
とすべきですが, 以下では単にmake install
と書いています.
1. FFTW2のインストール
FFTWの最新リリースはFFTW3で, 現在はそちらが推奨されますが, 並列計算の都合? で, Gadget-2を利用するためにはFFTW2でなければいけません.
$> wget http://www.fftw.org/fftw-2.1.5.tar.gz
$> tar -zxf fftw-2.1.5.tar.gz
$> cd fftw-2.1.5
$> ./configure --enable-float --enable-type-prefix --enable-mpi --prefix /usr/local/
$> make
$> make install
$> make clean
$> ./configure --enable-type-prefix --enable-mpi --prefix /usr/local/
$> make
$> make install
2. GSLのインストール
基本的には普通にインストールすればよいです. 2017年6月時点の最新版はGSL2.3なので, それをインストールします.
$ wget http://ftp.jaist.ac.jp/pub/GNU/gsl/gsl-2.3.tar.gz
$ tar -zxf gsl-2.3.tar.gz
$ cd ./gsl-2.3
$ ./configure --prefix=/usr/local
$ make
$ make install
これで完了ですが, ただし環境によってはGadget2が (コンパイルはできるのに) 実行できないということがあります.
この事象がどういう条件で起こるのかよくわからない (2台のWin10のBoWにインストールしましたが, 一方はうまくいって, もう一方はここで躓いた) ですが,
ともかくライブラリの場所へパスを通せば解決します. コマンドラインで
$ LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
$ export LD_LIBRARY_PATH
を実行してください (参考文献).
毎回起動時にこれを叩くのは面倒なので, これでうまくいくことが確認できたら, ~/.profile
(ないし対応するプロファイル) にこのコマンドを書き込めばよいです.
3. HDF5のインストール
GSLのインストールと並んで, ここでも引っ掛かりました. Gadget-2が書かれたのは2005年なので, その時点でのバージョンであるHDF5-1.6ないしそれ以前のバージョンを使わないとコンパイルできません. 現在のリリースはv1.8とv1.10ですが, そのどちらを使ってもうまくいきません.
$ wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.6/hdf5-1.6.10/src/hdf5-1.6.10.tar.gz
$ tar -zxf hdf5-1.6.10.tar.gz
$ cd hdf5-1.6.10
$ ./configure --prefix=/usr/local/
$ make
$ make install
4. Gadget-2のインストール
ここまで来たら後は問題なくインストールできるはずです. ただしMakefileの中にいまインストールしたライブラリの場所を書き込む必要があります.
$ wget http://wwwmpa.mpa-garching.mpg.de/gadget/gadget-2.0.7.tar.gz
$ tar -zxf gadget-2.0.7.tar.gz
$ cd ./Gadget-2.0.7/Gadget2
$ emacs Makefile
ここで先述の日々ubuntuに感謝しつつ様などを見ながら適当にMakefileを書き直します.
ただし, HDF5に関してはHDF5LIB = -L/usr/local/ -lhdf5 -lz
としてください. それができたら
$ make
で終わりです. 動作確認は日々ubuntuに感謝しつつ様に書いてある通りにすれば大丈夫です.
HDF5でアウトプットを書き出すには, galaxy.paramファイルのSnapFormat
を1から3に切り替えます.
コメント
コメントを投稿