DFTB+ 23.1 (MPI)
ウェブページ
https://dftbplus.org/

バージョン
23.1

ビルド環境
Intel oneAPI Compiler Classic 2023.1.0
Intel MKL 2023.1.0
HPC-X 2.11 (Open MPI 4.1.4)

必要なファイル
elsi_interface-v2.9.1.tar.gz
plumed-src-2.9.0.tgz
dftbplus-23.1.tar.xz

ビルド手順
ELSI
#!/bin/sh
ELSI_VERSION=2.9.1
ELSI_DIRNAME=elsi_interface-v${ELSI_VERSION}
PARALLEL=64
COMPILER=intel2023.1.0
MPI=ompi
BASEDIR=${HOME}/Software/elsi/${ELSI_VERSION}ELSI_TARBALL=${BASEDIR}/${ELSI_DIRNAME}.tar.gz
WORKDIR=/gwork/users/${USER}INSTALLDIR=/apl/elsi/${ELSI_VERSION}/${COMPILER}/${MPI}
OPENMPI=openmpi/4.1.4-hpcx/intel2023.1.0#------------------------------------------------------------------------------cd $WORKDIR
module -s purgeif [ ! -d $ELSI_DIRNAME ]; thentar xzf ${ELSI_TARBALL}fi
cd $ELSI_DIRNAME
if [ ! -d build ]; thenmkdir buildfi
sed -i -e 's/mpiifort/mpifort/g' -e 's/mpiicc/mpicc/g' -e 's/mpiicpc/mpicxx/g' -e 's/-std=c99/-std=c99 -diag-disable=10441/g' -e 's/-std=c++11/std=c++11 -diag-disable=10441/g' -e 's/intelmpi/openmpi/g' toolchains/intel_gpu.cmakeif ! grep -q BUILD_SHARED_LIBS toolchains/intel_gpu.cmake ; thenecho 'SET(BUILD_SHARED_LIBS ON CACHE BOOL "Build ELSI as a shared library")' >> toolchains/intel_gpu.cmakefi
if [ -f build/CMakeCache.txt ]; thenrm -rf build/*fi
cd build
module load ${OPENMPI}
module load mkl
module load cuda
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/intel_gpu.cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR} ..

make -j ${PARALLEL}
make test
make install

PLUMED(MPI版)#!/bin/sh
PLUMED_VERSION=2.9.0
PLUMED_DIRNAME=plumed-${PLUMED_VERSION}
PARALLEL=64
COMPILER=intel2023.1.0
MPI=ompi
BASEDIR=${HOME}/Software/plumed/${PLUMED_VERSION}
PLUMED_TARBALL=${BASEDIR}/plumed-src-${PLUMED_VERSION}.tgz
WORKDIR=/gwork/users/${USER}INSTALLDIR=/apl/plumed/${PLUMED_VERSION}/${COMPILER}/${MPI}
OPENMPI=openmpi/4.1.4-hpcx/intel2023.1.0#------------------------------------------------------------------------------cd $WORKDIR
module -s purgeif [ ! -d $PLUMED_DIRNAME ]; thentar xzf ${PLUMED_TARBALL}fi
cd $PLUMED_DIRNAME
module load ${OPENMPI}
module load mkl
FC=ifort CC=icc ./configure --prefix=${INSTALLDIR} --enable-modules=all --enable-libsearch=no LIBS="-lstdc++ -qmkl -lmpi -lmpi_cxx"
CXXFLAGS="-O3 -fopenmp -diag-disable=10441"
make -j ${PARALLEL}
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${WORKDIR}/${PLUMED_DIRNAME}/src/lib
make test
make install

DFTB+#!/bin/sh
DFTBPLUS_VERSION=23.1
DFTBPLUS_DIRNAME=dftbplus-${DFTBPLUS_VERSION}
PARALLEL=64
BASEDIR=${HOME}/Software/dftbplus/${DFTBPLUS_VERSION}DFTBPLUS_TARBALL=${BASEDIR}/${DFTBPLUS_DIRNAME}.tar.xz
WORKDIR=/gwork/users/${USER}INSTALLDIR=/apl/dftb+/${DFTBPLUS_VERSION}/ompi
ELSI_DIR=/apl/elsi/2.9.1/intel2023.1.0/ompiPLUMED_DIR=/apl/plumed/2.9.0/intel2023.1.0/ompi
OPENMPI=openmpi/4.1.4-hpcx/intel2023.1.0
LIBMBD=${HOME}/libmbd/libmbd#------------------------------------------------------------------------------cd $WORKDIR
module -s purgeif [ ! -d $DFTBPLUS_DIRNAME ]; thentar xJf ${DFTBPLUS_TARBALL}fi
cd $DFTBPLUS_DIRNAME
if [ ! -d _build ]; thenmkdir _buildfi
sed -i -e 's/intelmpi/openmpi/g' sys/intel.cmakemodule -s purgemodule load ${OPENMPI}
module load mkl
module load cuda
if [ -f _build/CMakeCache.txt ]; thenrm -rf _build/*firm -rf external/mbd/origin
cp -a ${LIBMBD} external/mbd/origin
FC=ifort CC=icc CMAKE_PREFIX_PATH="${LD_LIBRARY_PATH}:${ELSI_DIR}:${PLUMED_DIR}" cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR} DWITH_MPI=TRUE -DWITH_GPU=TRUE -DWITH_ELSI=TRUE -DWITH_TRANSPORT=TRUE -DWITH_TBLITE=TRUE -DWITH_SOCKETS=TRUE DWITH_SDFTD3=TRUE -DWITH_MBD=TRUE -DWITH_PLUMED=TRUE -DWITH_CHIMES=TRUE -B _build .
cmake --build _build -- -j ${PARALLEL}# Testulimit -s unlimited./utils/get_opt_externals
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PLUMED_DIR}/lib
pushd _build; ctest -j${PARALLEL}; popd
# Install
cmake --install _build

メモ
特筆すべき事項無し