文書の過去の版を表示しています。
目次
Ubuntu Serverでつくるシミュレーション環境
Ubuntu Server 12.04.3 のインストール
Ubuntu Serverのインストールを行っておく。
必要なソフトウェアのインストール
ubuntuサーバをインストールしただけの状態では
$ cc プログラム 'cc' は以下のパッケージで見つかりました: * gcc * clang * pentium-builder * tcc 次の操作を試してください: sudo apt-get install <選択したパッケージ> $ make プログラム 'make' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install make $ gfortran プログラム 'gfortran' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install gfortran
のようにFORTRANはおろかcのコンパイラもmakeすらもインストールされていない。そこでパッケージ管理ツールであるapt-getを使ってこれらをインストールしておく。
先ずはパッケージリストをアップデートする。
$ sudo apt-get update ヒット http://jp.archive.ubuntu.com precise Release.gpg ... ヒット http://security.ubuntu.com precise-security/universe Translation-en パッケージリストを読み込んでいます... 完了 $ 一先ずGNU make, GNU c コンパイラ, GNU fortran コンパイラをインストールしておこう。 $ sudo apt-get install make gcc gfortran パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 ... この操作後に追加で 71.7 MB のディスク容量が消費されます。 続行しますか [Y/n]? 取得:1 ... ... $
rpmやyumなどのapt-get以外のパッケージ管理システムやcvsやsvnなどのバージョン管理システムもあると便利である。ここではase3とdacapo.runのインストールのために必要になるのでrpmとsvn(subversion)をインストールしておく。
$ sudo apt-get install rpm subversion ... $
ase3(Campos Atomic Simulation Environment version 3)のインストールに最低限必要なのは
- Numerical Python
- Scientific Python
- netCDF (Network Common Data Form) interface for Python
である。GUIではなくCUIベースの計算サーバをリモートで動かし、計算結果の可視化等はローカルのMac OSX上で行うことになるのでグラフィック関係の追加機能は省略する。 これらをapt-getを使ってインストールする。
$ sudo apt-get install python-numpy python-scipy python-netcdf ... $
Dacapoのビルドに必要なのは、gfortranを除くと
- blas/lapack
- fftw
である。
これらをapt-getを使ってインストールする。
$ sudo apt-get install netcdf-dev $ sudo apt-get install fftw-dev $ sudo apt-get install liblapack-dev ... $
Dacapoのインストール
dacapo.run(偽ポテンシャルベースの第一原理計算エンジン)にはrpm形式で配布されているバイナリを試験的に導入する。(最終的にはソースからコンパイルし直して現環境で最適なロードモジュールを作成する)
$ sudo rpm -ihv --nodeps Dacapo-2.7.7-0.1.i386.rpm rpm: RPM should not be used directly install RPM packages, use Alien instead! rpm: However assuming you know what you are doing... ... $
これにより
$ rpm -qlp Dacapo-2.7.7-0.1.i386.rpm /etc/profile.d/dacapo.csh /etc/profile.d/dacapo.sh /usr/bin/dacapo.run /usr/bin/dacapo_2.7.7.run /usr/bin/dacapo_2.7.7_mpi.run /usr/share/dacapo/psp /usr/share/dacapo/psp/Al_tm_gga.pseudo ... /usr/share/dacapo/psp/zn_us_gga_7.3.4.pseudo $
のようなファイル群が上記のディレクトリに展開される。 /etc/profile.d/に下記の環境設定ファイルが作成されているので次回ログイン時からは環境変数が有効になる。
$ cat /etc/profile.d/dacapo.sh # # POSIX shell script to set environment for Dacapo # # Dacapo pseudopotentials database DACAPOPATH=/usr/share/dacapo/psp if [ -d $DACAPOPATH ] then export DACAPOPATH else # No dacapo unset DACAPOPATH fi $
このまま続けるときは
$ source /etc/profile.d/dacapo.sh $
のようにして環境変数を有効にしておくこと。
ase3/jacapoのインストール
svnを使ってase3のファイルをチェックアウト(ダウンロード)する。
$ export ASE_TAGS=https://svn.fysik.dtu.dk/projects/ase/tags/ $ svn checkout https://svn.fysik.dtu.dk/projects/ase/trunk ase A ase/tools A ase/tools/ase-gui.bat A ase/tools/ase-run.bat ... A ase/MANIFEST.in A ase/README.txt U ase リビジョン 3429 をチェックアウトしました。 $
aseのインストールを行う。(ここでは作業を$HOMEで行っていると仮定している)
$ export PYTHONPATH=$HOME/ase:$PYTHONPATH $ export PATH=$HOME/ase/tools:$PATH $ cd $HOME/ase $ sudo python setup.py install ... $
インストールが終わったらaseのテストを行う。テストにより大量のファイルが作成されるため適当な作業用ディレクトリを作ってテストはその作業用ディレクトリで行う。
$ cd $ mkdir work $ cd work $ python -c "from ase.test import test; test(verbosity=2, calculators=['jacapo'], display=False)" 2>&1 | tee testase.log python 2.7.3 GCC 4.6.3 64bit ELF on Linux x86_64 Ubuntu 12.04 precise Ag-Cu100.py (ScriptTestCase) ... ok CO2_Au111.py (ScriptTestCase) ... ok COCu111_2.py (ScriptTestCase) ... ok ... gromacs/test_gromacs.py (ScriptTestCase) ... skipped ok jacapo/jacapo.py (ScriptTestCase) ... ok mopac/mopac_cmdline.py (ScriptTestCase) ... skipped ok ... COCu111.py (ScriptTestCase) ... ok ---------------------------------------------------------------------- Ran 94 tests in 36.606s OK $
ここではより詳しい情報を表示させるためにverbosity=2を、テストにjacapoを含めるためにcalculators=['jacapo']を、画像関係のテストをスキップするためにdisplay=Falseを、それぞれ指定している。
ここでerrorもしくはfailureと表示されたテストスクリプトがあった場合はそのテストスクリプトを詳細に調べ、必要なパッケージの再インストール等を行う。全ての試験がokもしくはskipped okになればよい。後はJacapoのチュートリアルに従って計算を行うだけである。