0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pimd+qe+aenetのコンパイル

Last updated at Posted at 2024-12-09

東京大学物性研のohtakaでpimd+qe+aenetのコンパイル方法を紹介する。
まず、ohtakaのhomeにはいてください。windowsの場合は、Tera Termで登録してください。

cd ~
mkdir PIMD
cd PIMD
mkdir src
cd src

##PIMDのダウンロード

~/PIMD/src以下でPIMD 2.4.0用ディレクトリを作成します。~/PIMD/src/pimd-2.4.0で以下を実行しpimd-2.4.0のソースコードをダウンロード、解凍します。
wget https://ccse.jaea.go.jp/software/PIMD/download/pimd.2.4.0.tar.gz
gunzip pimd.2.4.0.tar.gz
tar xvf pimd.2.4.0.tar
mkdir compile
cd compile
cp ../source/* .
vi makefile

makefileの中身を変えてください。

FCMP = mpiifort
#     MAC OSX:
OPTS   =  -O2 -g -traceback -w \
          -static-intel -qopenmp \
          -I${MKLROOT}/include/fftw
 #     compile PIMD with QE
 QE = -Dqe

#     compile PIMD without QE
#QE =
LIBQE = -L../lib/qe/q-e-qe-6.2.1/qelib -lqe -L.
LIBMKL = -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 \
         -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core
#     compile PIMD with AENET
 AENET = -Daenet

#     compile PIMD without AENET
#AENET =
LIBAENET    = -I../lib/aenet/aenet-2.0.3/src \
              ../lib/aenet/aenet-2.0.3/src/libaenet.a \
              ../lib/aenet/aenet-2.0.3/lib/liblbfgsb.a

保存

:wq

##モジュールの準備
compileディレクトリで以下を実行します。

make common_variables.o

##QEのダウンロード
compileからライブラリ用ディレクトリに移動します。

cd ../lib/qe
wget https://github.com/QEF/q-e/archive/qe-6.2.1.zip
unzip qe-6.2.1.zip
patch -p0 < qe-6.2.1_to_pimdlib.patch

##QEのコンパイル

cd q-e-qe-6.2.1
MPIF90=mpiifort DFLAGS='-D__OPENMP -D__FFTW3 -D__MPI -D__SCALAPACK' SCALAPACK_LIBS='-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64' ./configure --enable-openmp

make.incが生成する。生成されたmake.incを手動で編集します。

vi make.inc
IFLAGS         = -I$(TOPDIR)/include -I$(TOPDIR)/FoX/finclude -I../include/ -I/opt/intel/oneapi/mkl/2023.0.0/include -I$(MKLROOT)/include/fftw -I../../../compile
MPIF90         = mpiifort
F90           = ifort
CC             = icc
F77            = ifort
CFLAGS         = -O3 $(DFLAGS) $(IFLAGS)
F90FLAGS       = $(FFLAGS) -nomodule -qopenmp -fpp $(FDFLAGS) $(IFLAGS) $(MODFLAGS)
FFLAGS         = -O2 -assume byterecl -g -traceback -qopenmp
FFLAGS_NOMAIN   = -nofor_main
LD             = mpiifort
LDFLAGS        =  -qopenmp
LD_LIBS        =
BLAS_LIBS      =   -lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core
BLAS_LIBS_SWITCH = external
:wq

保存。これで準備ができましたのでpw.x(libqepw.a)をビルドします。

make pw

##AENETのダウンロード

cd ../../aenet/
wget http://ann.atomistic.net/files/aenet-2.0.3.tar.bz2
tar jxvf aenet-2.0.3.tar.bz2
cd aenet-2.0.3
patch -u -p1 -d src < ../src.patch
cd lib
vi Makefile

Makefileの中身を変更

FC      = ifort -c
FCFLAGS = -O2

SHRLD    = gcc
SHRFLAGS = -fPIC
SHARED   = -shared
SHRLIB   = -lm -lgfortran

TAR       = tar
AR        = ar
ARFLAGS   = -crusv
:wq

保存する。コンパイルを実行します。

make
cd ../src/makefiles/
vi Makefile.ifort_intelmpi

以下の部分が違いましたら、編集してください。

SUFFIX   = ifort_intelmpi

FC       = mpiifort -c
LD       = mpiifort
DEBUG    =
FCFLAGS  = -DPARALLEL -O2 $(DEBUG)
LDFLAGS  = -static-intel $(DEBUG)
NUMLIB   = -Wl,--start-group \
           $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \
           $(MKLROOT)/lib/intel64/libmkl_core.a \
           $(MKLROOT)/lib/intel64/libmkl_sequential.a \
           -Wl,--end-group -lpthread -lm

CC       = gcc -c
CCFLAGS  =
:wq

保存する。makeを実行します。

cd ..
make -f makefiles/Makefile.ifort_intelmpi lib

##PIMDのコンパイル

cd ../../../qe/q-e-qe-6.2.1/PW/src/

libqepw.aというファイルが出ていることを確認する。

cd ../../../../../compile/
make

完成!

ls

pimd.mpi.x pimd.x この二つのファイルができたかを確認してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?