8. PHASE/0のインストール

8.1. 動作環境

PHASE/0は、PCから最先端のスーパーコンピュータの様々な計算機環境で動作します。

PHASE/0プログラムはfortran(fortran90およびfortran77)とCで記述されています。これらのコンパイラが使える計算機システムが必要です。並列計算をする場合にはMPIライブラリがインストールされている必要があります。

必要(利用可能)なソフトウェア、ライブラリ

  • Fortran90コンパイラ、Cコンパイラ(必須)

  • MPIライブラリ(並列計算に必須)

  • 行列演算ライブラリLAPACK, BLAS(オプション)

  • FFTライブラリFFTW(オプション)

  • Perl(オプション)・・・・PHASEツールで必要

  • Gnuplot(オプション)・・・・PHASEツールで必要

  • Python(オプション)・・・・PHASEツール,ASEで必要

PHASEの動作確認を行っている計算機環境を以下に示します。

PHASE/0が動作する計算機環境

計算機環境

コンパイラー

利用可能ライブラリ

Linux

GNU Compiler Intel Compiler

LAPACK, BLAS, ScaLAPACK MKL FFTW3

Intel版Mac OS X

GNU Compiler Intel Compiler

MKL FFTW3

NEC SX Series

Fortran90/SX

Mathkeisan(LAPACK) ASL(FFT)

Fujitsu FX10, FX100

Fujitsu Compiler

  • MPIライブラリは、OpenMPI, IntelMPI, SGI MPTなどに対応しています。

  • GNU Compiler(gfortran, gcc)は、バージョン4.4以降を使用してください。

  • MKLのFFTW3ラッパーを介してMKLのFFTを利用することもできます。

  • ASLのFFTW3ラッパーを介してASLのFFTを利用することもできます。

8.2. 2次元版および3次元版について

PHASE/0は,バンドおよびk点の2軸で並列化を施した2次元版と,バンド,k点に加えG点の並列軸を加えた3次元版があります。低並列時では2次元版の方が高速に動作することが多いですが,高並列時は3次元版に軍配があがります。ただし,一部機能は2次元版でしか利用することはできません。

8.3. インストール方法

Linux環境を例にしてインストール方法を説明します。ここでは、Linux環境にIntel Fortran compilerがインストールされていることを想定します。 別のコンパイラを利用する場合はコンパイラの選択のときに、そのコンパイラを選択してください。また、MPIライブラリとして、OpenMPIを使用することを仮定しています。プログラムモデルの選択のときに「Serial」を選択すればMPIライブラリを使用しないでプログラムを作成することもできます。

まず、PHASE/0パッケージphase0_2020.01.tar.gzをPHASE/0をインストールするディレクトリに展開してください。

$ tar zxf phase0_2020.01.tar.gz

ディレクトリphase0_2020.01に移り、インストーラーを実行してください(2次元版はinstall.sh, 3次元版はinstall_3d.sh;以下は2次元版の例)

cd phase0_2020.01
$ ./install.sh

 === PHASE installer ===
 Do you want to install PHASE? (yes/no) [yes]

インストールするかどうか聞いてきますので、何も入力せずにEnterキーを押してください。

Supported platforms

0) GNU Linux (IA32)
1) GNU Linux (EM64T/AMD64)
2) NEC SX Series
x) Exit

Enter number of your platform. [0]

対応する環境の一覧が表示されますので、「GNU Linux (IA32)」に対応する0を入力して、Enterキーを押してください。

Supported compilers
0) GNU compiler collection (gfortran)
1) Intel Fortran compiler
x) Exit
Enter number of a desired compiler. [0]

対応するコンパイラーの一覧が表示されますので、「Intel Fortran compiler 9.x」に対応する2を入力して、Enterキーを押してください。

Supported programming-models
0) Serial
1) MPI parallel
x) Exit
Enter number of a desired programming-model. [0]

対応するプログラムモデルの一覧が表示されますので、「MPI parallel」に対応する1を入力して、Enterキーを押してください。

Supported MPI libraries
0) Open MPI
1) SGI MPT
2) Intel(R) MPI
x) Exit
Enter number of a desired MPI library. [0]

対応するMPIライブラリの一覧が表示されますので、「Open MPI」に対応する0を入力して、Enterキーを押してください。

Supported BLAS/LAPACK
0) Netlib BLAS/LAPACK
1) Intel Math Kernel Library (MKL)
x) Exit
Enter number of a desired library. [0]

対応するBLAS/LAPACKライブラリの一覧が表示されますので、「Netlib BLAS/LAPACK」に対応する0を入力して、Enterキーを押してください。

Supported FFT libraries
0) Built-in FFT subroutnes
1) FFTW3 library
x) Exit
Enter number of a desired library. [0]

対応するFFTライブラリの一覧が表示されますので、「Built-in FFT subroutnes」に対応する0を入力して、Enterキーを押してください。

Do you want to edit the makefile that has been generated? (yes/no/exit) [no]

作成されたMakefileを編集するかどうか聞いてきます。Makefileの確認や編集を行う必要がなければ、何も入力せずにEnterキーを押してください。

Do you want to make PHASE now? (yes/no) [yes]

PHASEのコンパイルとインストールを開始するかどうか聞いてきます。何も入力せずにEnterキーを押して、PHASEのコンパイルとインストールを始めてください。

PHASE was successfully installed.
Do you want to check the installed programs? (yes/no) [no]

PHASEが正常にインストールされたことを告げるメッセージの後、プログラムのテスト計算を実行するかどうか聞いてくるので、必要があればyesを入力し、Enterキーを押してください。テスト計算をしないならば、noを入力してEnterキーを押してください。テスト計算を実行して以下のような出力が得られれば問題ありません。

Do you want to check the installed programs? (yes/no) [no]
yes
Checking total-energy calculation.
 Total energy : -7.897015156331 Hartree/cell
 Reference    : -7.897015156332 Hartree/cell
Checking band-energy calculation.
 Valence band maximum : 0.233846 Hartree
 Reference            : 0.233846 Hartree

MPIプログラムの実行に用いるmpirunやmpiexecなどのコマンドを用いて実行します。

$HOME/phase0_2020.01/binを環境変数PATHに追加しておくと、PHASE/0のプログラムのパスを指定せずに実行でき便利です。

Bourne shell(ボーンシェル)系であれば、$HOME/.bashrcなどにPATHを記述します。

export PATH=$HOME/phase0_2020.01/bin:$PATH

C shell(シーシェル)系であれば、$HOME/.cshrcにPATHを記述します。

setenv PATH $HOME/phase0_2020.01/bin:$PATH

MPIライブラリのbinディレクトリにも必ずパスを通すようにしてください。

Bourne shell(ボーンシェル)系であれば、$HOME/.bashrcなどにPATHを記述します。

export PATH=$HOME/openmpi/bin:$PATH

C shell(シーシェル)系であれば、$HOME/.cshrcにPATHを記述します。

setenv PATH $HOME/openmpi/bin:$PATH

以下のようにして、PHASEを実行します。

$ mpirun -np 2 phase ne=1 nk=2