安装如下依赖:
安装cmake
tar -xvf cmake-3.16.4.tar.gz && cd cmake-3.16.4
./configure --prefix=/path/to/CMAKE
make -j16 && make install
export PATH=/path/to/CMAKE/bin:$PATH
安装gmp
tar -xvf gmp-6.2.0.tar.xz && cd gmp-6.2.0
./configure --prefix=/path/to/GMP
make -j16 && make install
安装boost
tar -xvf boost_1_72_0.tar.gz
./bootstrap.sh
./b2 install --prefix=/path/to/BOOST
make -j16 && make install
安装libint
yum install gmp-devel.aarch64 libudev* -y
mkdir -p /path/to/EXTRA
mkdidr -p /path/to/EXTRA/mathlib
tar -xvf libint-2.6.0.tar.gz && cd libint-2.6.0 && ./autogen.sh
mkdir build && cd build
export LDFLAGS="-L/path/to/GMP/gmp-6.2/lib -L/path/to/BOOST/boost_1_72/lib"
export CPPFLAGS="-I/path/to/BOOST/boost_1_72/include/ -I/path/to/GMP/gmp-6.2/include"
../configure CXX=mpicxx --enable-eri=1 --enable-eri2=1 --enable-eri3=1 --with-max-am=4 --with-eri-max-am=4,3 --with-eri2-max-am=6,5 --with-eri3-max-am=6,5 --with-opt-am=3 --enable-generic-code --disable-unrolling --with-libint-exportdir=libint_cp2k_lmax4
make export
tar -xvf libint_cp2k_lmax4.tgz && cd libint_cp2k_lmax4
./configure --prefix=/path/to/EXTRA/libint2 CC=mpicc CXX=mpicxx FC=mpifort --enable-fortran --enable-shared
make -j32 && make install
安装fftw
tar -zxvf fftw-3.3.8.tar.gz && cd fftw-3.3.8
./configure CC=gcc F77=gfortran --enable-shared --enable-threads --enable-openmp --enable-mpi MPICC=mpicc --prefix= /path/to/EXTRA/fftw3
make -j && make install
安装lapack
tar zxvf lapack-3.8.0.tar.gz && cp make.inc.example make.inc && make -j 16
cp *.a /path/to/EXTRA/mathlib
安装scalapack
tar -xvf scalapack-2.1.0.tgz && cd scalapack-2.1.0
cp SLmake.inc.example SLmake.inc
vi SLmake.inc
#按“i"进入编辑模式:
BLASLIB = /path/to/LAPACK/lapack-3.8.0/librefblas.a
LAPACKLIB = /path/to/LAPACK/lapack-3.8.0/liblapack.a
LIBS = $(LAPACKLIB) $(BLASLIB
make -j16
cp *.a/path/to/EXTRA/mathlib
安装elpa
tar -xvf elpa-2019.05.001.tar.gz && cd elpa-2019.05.001
./configure --prefix=/path/to/EXTRA/elpa --enable-openmp --enable-shared=no LIBS="//path/to/EXTRA/mathlib/libscalapack.a /path/to/EXTRA/mathlib/liblapack.a /path/to/EXTRA/mathlib/librefblas.a" --disable-sse --disable-sse-assembly --disable-avx --disable-avx2
make && make install
安装spglib
tar -xvf spglib-1.12.2.tar.gz && cd spglib-1.12.2
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX="/path/to/EXTRA/spglib112"
make -j16 && make install
----结束
安装libxc
tar -xvf libxc-4.3.4.tar.gz && cd libxc-4.3.4
./configure FC=gfortran CC=gcc --prefix=/path/to/EXTRA/libxc434
make && make install
安装gsl
tar -xvf gsl-2.6.tar.gz && cd gsl-2.6
./configure --prefix=/path/to/EXTRA/gsl
make && make install
export LIBRARY_PATH=/path/to/EXTRA/gsl/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/path/to/EXTRA/gsl/lib:$LD_LIBRARY_PATH
安装plumed
tar -xvf plumed-2.5.2.tgz && cd plumed-2.5.2
./configure CXX=mpicxx CC=mpicc FC=mpifort --prefix=/path/to/EXTRA/plumed252 --enable-external-blas --enable-gsl --enable-external-lapack LDFLAGS=-L/path/to/EXTRA/mathlib LIBS="-lrefblas -llapack"
make && make install
编译和安装cp2k-7.1
wget https://github.com/cp2k/cp2k/archive/v7.1.0.tar.gz。
tar xvf cp2k-7.1.0.tar.gz && cd cp2k-7.1.0/arch
vi Linux-x86-64-gfortran.psmp
#按“i"进入编辑模式,修改文件。
GNU_PATH = /path/to/EXTRA/
MATHLIBPATH = /path/to/EXTRA/mathlib
include $(GNU_PATH)/plumed252/lib/plumed/src/lib/Plumed.inc.static
ELPA_VER = 2019.05.001
ELPA_INC = $(GNU_PATH)/elpa/include/elpa_openmp-$(ELPA_VER)
ELPA_LIB = $(GNU_PATH)/elpa/lib
FFTW_INC = $(GNU_PATH)/fftw3/include
FFTW_LIB = $(GNU_PATH)/fftw3/lib
LIBINT_INC = $(GNU_PATH)/libint2/include
LIBINT_LIB = $(GNU_PATH)/libint2/lib
LIBXC_INC = $(GNU_PATH)/libxc434/include
LIBXC_LIB = $(GNU_PATH)/libxc434/lib
SPGLIB_INC = $(GNU_PATH)/spglib112/include
SPGLIB_LIB = $(GNU_PATH)/spglib112/lib
CFLAGS = -O2 -g -mtune=native
DFLAGS = -D__ELPA -D__FFTW3 -D__LIBINT -D__LIBXC
DFLAGS += -D__MPI_VERSION=3 -D__PLUMED2 -D__SPGLIB
DFLAGS += -D__parallel -D__SCALAPACK
FCFLAGS = $(CFLAGS) $(DFLAGS)
FCFLAGS += -ffree-form -ffree-line-length-none
FCFLAGS += -fopenmp
FCFLAGS += -ftree-vectorize -funroll-loops -std=f2008
FCFLAGS += -I$(ELPA_INC)/elpa -I$(ELPA_INC)/modules
FCFLAGS += -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
LDFLAGS = $(FCFLAGS)
LIBS = $(PLUMED_DEPENDENCIES) -lgsl -lgslcblas -lz
LIBS += $(ELPA_LIB)/libelpa_openmp.a
LIBS += $(LIBXC_LIB)/libxcf03.a
LIBS += $(LIBXC_LIB)/libxc.a
LIBS += $(LIBINT_LIB)/libint2.a
LIBS += $(SPGLIB_LIB)/libsymspg.a
LIBS += $(FFTW_LIB)/libfftw3.a
LIBS += $(FFTW_LIB)/libfftw3_threads.a
LIBS += $(MATHLIBPATH)/libscalapack.a
LIBS += $(MATHLIBPATH)/liblapack.a
LIBS += $(MATHLIBPATH)/librefblas.a
LIBS += -ldl -lpthread -lstdc++
cd /path/to/CP2K/exts/dbcsr
cp dbcsr-2.1.0-rc12.tar.gz ./
tar -xvf dbcsr-2.1.0-rc12.tar.gz
cd dbcsr-2.1.0-rc12
#执行以下命令把dbcsr-2.1.0-rc12所有文件移到上一目录dbcsr中。
mv * ../
#执行以下命令进行安装编译。
make -j16 ARCH=Linux-x86-64-gfortran VERSION=psmp
#运行和验证
export PATH=/path/to/CP2K/exe/Linux-x86-64-gfortran:$PATH
mpirun --allow-run-as-root -np 128 -x OMP_NUM_THREADS=1 cp2k.psmp H2O-256.inp > cp2k.H2O-256.inp.log
安装如下依赖:
项目
版本
下载地址
CP2K
7.1
https://github.com/cp2k/cp2k/archive/v7.1.0.tar.gz
libint
2.6.0
https://github.com/evaleev/libint/archive/v2.6.0.tar.gz
libXC
4.3.4
https://gitlab.com/libxc/libxc/-/archive/4.3.0/libxc-4.3.0.tar.gz
fftw
3.3.8
http://www.fftw.org/fftw-3.3.8.tar.gz
lapack
3.8.0
https://codeload.github.com/Reference-LAPACK/lapack/tar.gz/v3.8.0
scalapack
2.1.0
http://www.netlib.org/scalapack/scalapack-2.1.0.tgz
cmake
3.16.4
https://cmake.org/files/v3.16/cmake-3.16.4.tar.gz
gmp
6.2.0
https://gmplib.org/download/gmp/gmp-6.2.0.tar.xz
boost
1.72
https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.gz
dbcsr
2.0.1
https://github.com/cp2k/dbcsr/releases/download/v2.0.1/dbcsr-2.0.1.tar.gz
elpa
019.05.001
https://www.cp2k.org/static/downloads/elpa-2019.05.001.tar.gz
spglib
1.12.2
https://github.com/spglib/spglib/archive/v1.11.2.1.tar.gz
gsl
2.6
http://mirrors.ustc.edu.cn/gnu/gsl/gsl-2.6.tar.gz
plumed
2.5.2
https://www.cp2k.org/static/downloads/plumed-2.5.2.tgz
测试算例
H2O-256.inp
软件自带测试算例
安装cmake
tar -xvf cmake-3.16.4.tar.gz && cd cmake-3.16.4
./configure --prefix=/path/to/CMAKE
make -j16 && make install
export PATH=/path/to/CMAKE/bin:$PATH
安装gmp
tar -xvf gmp-6.2.0.tar.xz && cd gmp-6.2.0
./configure --prefix=/path/to/GMP
make -j16 && make install
安装boost
tar -xvf boost_1_72_0.tar.gz
./bootstrap.sh
./b2 install --prefix=/path/to/BOOST
make -j16 && make install
安装libint
yum install gmp-devel.aarch64 libudev* -y
mkdir -p /path/to/EXTRA
mkdidr -p /path/to/EXTRA/mathlib
tar -xvf libint-2.6.0.tar.gz && cd libint-2.6.0 && ./autogen.sh
mkdir build && cd build
export LDFLAGS="-L/path/to/GMP/gmp-6.2/lib -L/path/to/BOOST/boost_1_72/lib"
export CPPFLAGS="-I/path/to/BOOST/boost_1_72/include/ -I/path/to/GMP/gmp-6.2/include"
../configure CXX=mpicxx --enable-eri=1 --enable-eri2=1 --enable-eri3=1 --with-max-am=4 --with-eri-max-am=4,3 --with-eri2-max-am=6,5 --with-eri3-max-am=6,5 --with-opt-am=3 --enable-generic-code --disable-unrolling --with-libint-exportdir=libint_cp2k_lmax4
make export
tar -xvf libint_cp2k_lmax4.tgz && cd libint_cp2k_lmax4
./configure --prefix=/path/to/EXTRA/libint2 CC=mpicc CXX=mpicxx FC=mpifort --enable-fortran --enable-shared
make -j32 && make install
安装fftw
tar -zxvf fftw-3.3.8.tar.gz && cd fftw-3.3.8
./configure CC=gcc F77=gfortran --enable-shared --enable-threads --enable-openmp --enable-mpi MPICC=mpicc --prefix= /path/to/EXTRA/fftw3
make -j && make install
安装lapack
tar zxvf lapack-3.8.0.tar.gz && cp make.inc.example make.inc && make -j 16
cp *.a /path/to/EXTRA/mathlib
安装scalapack
tar -xvf scalapack-2.1.0.tgz && cd scalapack-2.1.0
cp SLmake.inc.example SLmake.inc
vi SLmake.inc
#按“i"进入编辑模式:
BLASLIB = /path/to/LAPACK/lapack-3.8.0/librefblas.a
LAPACKLIB = /path/to/LAPACK/lapack-3.8.0/liblapack.a
LIBS = $(LAPACKLIB) $(BLASLIB
make -j16
cp *.a/path/to/EXTRA/mathlib
安装elpa
tar -xvf elpa-2019.05.001.tar.gz && cd elpa-2019.05.001
./configure --prefix=/path/to/EXTRA/elpa --enable-openmp --enable-shared=no LIBS="//path/to/EXTRA/mathlib/libscalapack.a /path/to/EXTRA/mathlib/liblapack.a /path/to/EXTRA/mathlib/librefblas.a" --disable-sse --disable-sse-assembly --disable-avx --disable-avx2
make && make install
安装spglib
tar -xvf spglib-1.12.2.tar.gz && cd spglib-1.12.2
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX="/path/to/EXTRA/spglib112"
make -j16 && make install
----结束
安装libxc
tar -xvf libxc-4.3.4.tar.gz && cd libxc-4.3.4
./configure FC=gfortran CC=gcc --prefix=/path/to/EXTRA/libxc434
make && make install
安装gsl
tar -xvf gsl-2.6.tar.gz && cd gsl-2.6
./configure --prefix=/path/to/EXTRA/gsl
make && make install
export LIBRARY_PATH=/path/to/EXTRA/gsl/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/path/to/EXTRA/gsl/lib:$LD_LIBRARY_PATH
安装plumed
tar -xvf plumed-2.5.2.tgz && cd plumed-2.5.2
./configure CXX=mpicxx CC=mpicc FC=mpifort --prefix=/path/to/EXTRA/plumed252 --enable-external-blas --enable-gsl --enable-external-lapack LDFLAGS=-L/path/to/EXTRA/mathlib LIBS="-lrefblas -llapack"
make && make install
编译和安装cp2k-7.1
wget https://github.com/cp2k/cp2k/archive/v7.1.0.tar.gz。
tar xvf cp2k-7.1.0.tar.gz && cd cp2k-7.1.0/arch
vi Linux-x86-64-gfortran.psmp
#按“i"进入编辑模式,修改文件。
GNU_PATH = /path/to/EXTRA/
MATHLIBPATH = /path/to/EXTRA/mathlib
include $(GNU_PATH)/plumed252/lib/plumed/src/lib/Plumed.inc.static
ELPA_VER = 2019.05.001
ELPA_INC = $(GNU_PATH)/elpa/include/elpa_openmp-$(ELPA_VER)
ELPA_LIB = $(GNU_PATH)/elpa/lib
FFTW_INC = $(GNU_PATH)/fftw3/include
FFTW_LIB = $(GNU_PATH)/fftw3/lib
LIBINT_INC = $(GNU_PATH)/libint2/include
LIBINT_LIB = $(GNU_PATH)/libint2/lib
LIBXC_INC = $(GNU_PATH)/libxc434/include
LIBXC_LIB = $(GNU_PATH)/libxc434/lib
SPGLIB_INC = $(GNU_PATH)/spglib112/include
SPGLIB_LIB = $(GNU_PATH)/spglib112/lib
CFLAGS = -O2 -g -mtune=native
DFLAGS = -D__ELPA -D__FFTW3 -D__LIBINT -D__LIBXC
DFLAGS += -D__MPI_VERSION=3 -D__PLUMED2 -D__SPGLIB
DFLAGS += -D__parallel -D__SCALAPACK
FCFLAGS = $(CFLAGS) $(DFLAGS)
FCFLAGS += -ffree-form -ffree-line-length-none
FCFLAGS += -fopenmp
FCFLAGS += -ftree-vectorize -funroll-loops -std=f2008
FCFLAGS += -I$(ELPA_INC)/elpa -I$(ELPA_INC)/modules
FCFLAGS += -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
LDFLAGS = $(FCFLAGS)
LIBS = $(PLUMED_DEPENDENCIES) -lgsl -lgslcblas -lz
LIBS += $(ELPA_LIB)/libelpa_openmp.a
LIBS += $(LIBXC_LIB)/libxcf03.a
LIBS += $(LIBXC_LIB)/libxc.a
LIBS += $(LIBINT_LIB)/libint2.a
LIBS += $(SPGLIB_LIB)/libsymspg.a
LIBS += $(FFTW_LIB)/libfftw3.a
LIBS += $(FFTW_LIB)/libfftw3_threads.a
LIBS += $(MATHLIBPATH)/libscalapack.a
LIBS += $(MATHLIBPATH)/liblapack.a
LIBS += $(MATHLIBPATH)/librefblas.a
LIBS += -ldl -lpthread -lstdc++
cd /path/to/CP2K/exts/dbcsr
cp dbcsr-2.1.0-rc12.tar.gz ./
tar -xvf dbcsr-2.1.0-rc12.tar.gz
cd dbcsr-2.1.0-rc12
#执行以下命令把dbcsr-2.1.0-rc12所有文件移到上一目录dbcsr中。
mv * ../
#执行以下命令进行安装编译。
make -j16 ARCH=Linux-x86-64-gfortran VERSION=psmp
#运行和验证
export PATH=/path/to/CP2K/exe/Linux-x86-64-gfortran:$PATH
mpirun --allow-run-as-root -np 128 -x OMP_NUM_THREADS=1 cp2k.psmp H2O-256.inp > cp2k.H2O-256.inp.log