vasp 5.4.4 の win10/Ubuntu 18.04 でのインストール#
Linux のコマンドはすべて等幅フォントで表示され、ディレクトリやファイルは斜体で表示されます。
更新:ubuntu 20.04 では parallel studio をインストールできません
win10 1903 で wsl を有効にし、Ubuntu 18.04 lts をダウンロードし、Windows Defender のリアルタイム保護を無効にします(オプションですが、そうしないと Linux システムでの I/O が機能しません)。新しいバージョンの Ubuntu にログインした後、まずユーザーを作成し、sudo パスワードを設定する必要があります。root パスワードを設定することもできます(オプション)
sudo passwd root
システムに入ったら、Intel Parallel Studio XE をインストールしてコンパイル環境を設定します。
個人的な試みで GNU インストールを使用しない理由は、何度試してもコンパイルエラーが発生するためです。理論的には、GNU インストールが最も簡単で、apt-get で少数のパッケージをインストールするだけでコンパイルできます。
Intel Parallel Studio X を edu.cn のメールアドレスで教育アカウントに登録し、オンラインインストールパッケージをダウンロードします。サイズは 18 MB です。wget でダウンロードし、tar -xzvf で展開し、ディレクトリに移動します。root 権限で install.sh を実行します(もちろん、インストールディレクトリを変更して、現在のユーザーのみにインストールすることもできます)
sudo ./install.sh
要件に従ってインストールを進めてください。後でカスタムインストールを選択し、不要なコンポーネントをすべて選択解除してください(ディスクスペースが大きい場合を除く)。vasp のコンパイル環境には、Intel C++、Intel Fortran、Math Kernel for Fortran、および Intel MPI のみが必要です。Math Kernel for C++ もインストールすることをお勧めしますが、他のソフトウェアは使用できます。合計で 5 つのコンポーネントをインストールし、サイズは約 3 GB です(完全なインストールは 11 GB です)。
インストールが完了したら、環境変数を設定し、~/.bashrc に次の内容を追加します:
source /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/compilervars.sh intel64
source /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/iccvars.sh intel64
source /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/ifortvars.sh intel64
source /opt/intel/compilers_and_libraries_2019.4.243/linux/mkl/bin/mklvars.sh intel64
source /opt/intel/impi/2019.4.243/intel64/bin/mpivars.sh
今回インストールしたのは Parallel Studio XE のバージョン 2019.4.243 ですので、追加する内容は実際の状況に応じて変更する必要があります。追加したら、変数を更新するために source を実行し、その後 which icc ifort icpc mpiifort を実行して正常にインストールされたかどうかを確認します。
その後、並列 fftw をコンパイルする必要があります。ディレクトリに移動します:
cd /opt/intel/compilers_and_libraries_2019.4.243/linux/mkl/interfaces/fftw3xf
ディレクトリに入ったら、root ユーザーに切り替え、/home/user/.bashrc を source してから fftw3xf をコンパイルします:
make libintel64
root に切り替える理由は、直接 make を実行すると権限が不足しているというエラーが表示されるためです(現在の操作が /opt 内で行われているため)。root ユーザーで環境変数が設定されていないため、sudo make を実行するとコンパイルできません。コンパイルが終了したら、exit を実行して root ユーザーからログアウトし、ディレクトリに libfftw3xf_intel.a ファイルが作成されます。
もう一つの方法は、Intel ライブラリを root 権限でインストールせずに、自分のディレクトリに置くことです。どちらの方法でも問題ありません。
その後、vasp ファイルをダウンロードし、tar で展開し、展開したディレクトリに移動します。makefile.iclude をコピーします:
cp arch/makefile.include.linux_intel makefile.include
必要な変更を行います。まず、数学ライブラリの場所を変更します(1 行のコードを追加するだけです):
MKLROOT = /opt/intel/compilers_and_libraries_2019.4.243/linux/mkl
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_intelmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
もちろん、最初の行は makefile.iclude に追加するのではなく、直接 ~/.bashrc に追加することもできます($MKLROOT は環境パスですので)。この操作方法がわからない場合は、ここに追加することをお勧めします。
最後に、fftm の設定を変更します:
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
はい、2 つの場所を変更するだけで終わりです。インターネット上のチュートリアルでは、まず ifort をインストールし、次に openmpi をコンパイルし、次に fftm をコンパイルし、最後に vasp をコンパイルする方法が Parallel Studio XE を入手できない場合に書かれています。個人的には、Parallel Studio XE を使用すれば十分です。
その後、make all または make std を実行します。どちらのバージョンが必要かは、あなたのニーズによります。コンパイル時には、-j オプションを使用しないでください。vasp パッケージ内の依存関係が非常に複雑であり、このオプションを使用するとコンパイルが失敗する可能性があります。3 つのパッケージをシングルスレッドでコンパイルするのに約 1 時間かかります。コンパイルが成功しない場合は、依存パッケージがインストールされていない可能性があるため、apt-get を実行してください。
コンパイルが完了したら、環境変数を設定し、mpirun または直接 vasp を使用して実行します。
完全な makefile.iclude は以下の通りです:
# Precompiler options
CPP_OPTIONS= -DHOST=\"LinuxIFC\"\
-DMPI -DMPI_BLOCK=8000 \
-Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Duse_bse_te \
-Dtbdyn \
-Duse_shmem
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpiifort
FCL = mpiifort -mkl=sequential -lstdc++
FREE = -free -names lowercase
FFLAGS = -assume byterecl -w
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
MKLROOT = /opt/intel/compilers_and_libraries_2019.4.243/linux/mkl
MKL_PATH = $(MKLROOT)/lib/intel64
BLAS =
LAPACK =
BLACS = -lmkl_blacs_intelmpi_lp64
SCALAPACK = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)
OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o \
$(MKLROOT)/interfaces/fftw3xf/libfftw3xf_intel.a
INCS =-I$(MKLROOT)/include/fftw
LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS)
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icc
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB= linpack_double.o getshmem.o
# For the parser library
CXX_PARS = icpc
LIBS += parser
LLIBS += -Lparser -lparser -lstdc++
# Normally no need to change this
SRCDIR = ../../src
BINDIR = ../../bin
ノートパソコンは 2 つのコアと 4 つのスレッドを持っていますが、mpirun -np 2 を実行すると、CPU 使用率は 50% しか表示されません。しかし、ハイパースレッディング CPU では -np をコア数の 2 倍に設定するべきではないため、50% で実行してください。
また、Ubuntu マシンでは、root 権限でインストールせずにインストールした場合、4 つのコアのマシンで 8 つのスレッドまで実行できます。したがって、問題は wsl システムにある可能性があります。
また、いくつかのバグの解決方法について説明します。クロスノードを使用しない場合は、関連する設定ファイルを削除する必要があります。自分のコンピューターで実行すると、メモリが不足しているエラーが発生する場合、mpirun ではなく vasp_std を使用することはできません。また、大規模なシステムの場合は、スタックサイズを変更する必要があります。たとえば、256 MB に変更します。さもないと、メモリが不足する可能性があります。