PHASE/0は、PHASEシステム研究会が管理している第一原理電子状態計算ソフトウェアです。そのソースコードは無料でダウンロードできますので、それをコンパイルして計算実行する手順をご説明します。開発環境が整っていることを前提とします(開発環境構築についてはこちらを参照して下さい)。
旧バージョンの情報:2015.01
PHASE/0ダウンロード版一式は、GNUコンパイラを利用してコンパイルできるように整備されています。インストール手順はマニュアルで詳しく説明されていますが、改めてここに示します。install.sh実行後は【...】内を入力して下さい。
$ tar zxf phase0_2016.01.tar.gz
$ cd phase0_2016.01/
$ ./install.sh
=== PHASE installer ===
Do you want to install PHASE? (yes/no) [yes]
【enter】
GenMake ver 1200
Supported platforms
0) GNU Linux (IA32)
1) GNU Linux (EM64T/AMD64)
2) NEC SX Series
x) Exit
Enter number of your platform. [0]
【1 enter】
Selected platform: GNU Linux (EM64T/AMD64)
Supported compilers
0) GNU compiler collection (gfortran)
1) Intel Fortran compiler
x) Exit
Enter number of a desired compiler. [0]
【enter】
Selected compiler: GNU compiler collection (gfortran)
Supported programming-models
0) Serial
1) MPI parallel
x) Exit
Enter number of a desired programming-model. [0]
【1 enter】
Selected programming-model: MPI parallel
Selected MPI library: MPICH1/MPICH2/Open MPI
Supported BLAS/LAPACK
0) Netlib BLAS/LAPACK
1) Intel Math Kernel Library (MKL)
2) System-installed MKL
x) Exit
Enter number of a desired library. [0]
【enter】
Selected BLAS/LAPACK: Netlib BLAS/LAPACK
Supported FFT libraries
0) Built-in FFT subroutnes
1) FFTW3 library
2) System-installed FFTW3 library
x) Exit
Enter number of a desired library. [0]
【1 enter】
Selected FFT library: FFTW3 library
Enter FFT library directory. [/usr/local/lib]
【enter】
Selected FFT library directory: /usr/local/lib
Do you want to enable the ESM feature? (yes/no) [yes]
【enter】
Do you want to edit the makefile that has been generated? (yes/no/exit) [no]
【enter】
Do you want to make PHASE now? (yes/no) [yes]
【enter】
cd EsmPack; make INCLUDE="-I/usr/local/lib/../include" FORTRAN="mpif90 -m64" LIBFLAG="-L./ -lesm -L./ -llapack -lblas -L/usr/local/lib -lfftw3 " MPIFLAG="-D__MPI__" AR="ar -vq"
make[1]: ディレクトリ `/home/asms/phase0_2016.01/src_phase/EsmPack' に入ります
mpif90 -m64 -c -I/usr/local/lib/../include -D__MPI__ fft.F90
mpif90 -m64 -c -I/usr/local/lib/../include -D__MPI__ vector.f90
mpif90 -m64 -c -I/usr/local/lib/../include -D__MPI__ Ewald.f90
mpif90 -m64 -c -I/usr/local/lib/../include -D__MPI__ Esm.F90
...
...
PHASE was successfully installed.
Do you want to check the installed programs? (yes/no) [no]
【enter】
$
ディレクトリphase0_2016.01/binに実行形式ファイルがコピーされます。
それでは並列性能を評価してみましょう。PHASE/0配布物には多数のサンプル入力ファイルが付属していますが、小さな系が中心です。小さな系では並列性能が低くなる傾向があります。また実用上、並列を利用して実行時間を短縮したい計算は、原子数が多い(計算に時間を要する)系です。そこで並列性能を評価することを目的に、ゼオライトの入力ファイルをご用意しました。全72原子で、小規模並列計算の性能評価に適しています。対称性を利用するとk点は一つだけになりますので、k点並列は利用できません。バンド並列のみを利用して、並列数(-npの後ろの数値;下記実行例では4並列)を変えて計算時間を測定しました。
$ ls zeolite.tar.xz
zeolite.tar.xz
$ mkdir bench
$ cd bench
$ tar Jxf ../zeolite.tar.xz
$ mpirun -np 4 ~/phase0_2016.01/bin/phase
Windowsのタスクマネージャーを起動すると、CPUが仕事をしていることが確認できます。並列しない場合と比較した計算速度は、2並列で約1.9倍、4並列で約3.3倍でした。並列数が多くなると効率が悪くなりますが、原子数が多くなれば、より多くの並列数まで高い効率を保つことが期待できます。
Windowsパソコンでも実用的な第一原理電子状態計算を遂行できますので、上手に活用してください。
PHASE/0製品版のご利用にあたりご不明な点や、解析、カスタマイズのご依頼・ご相談などにつきましてはお問い合せください。