NWChem 7.3.1
ウェブページ
バージョン
7.3.1
ビルド環境
- GCC 15.1.1 (gcc-toolset-15)
- Intel MKL 2025.3 (oneAPI 2025.3.1)
- Open MPI 4.1.8
テストに必要なファイル
- runtest.md.mpi
#!/bin/sh
./runtests.mpi.unix procs 48 \
na_k/nak \
na_k/nak_md \
crown/crown_md \
ethanol/ethanol_md \
ethanol/ethanol_ti \
had/had_em \
had/had_md \
prep/a3n \
prep/aal \
prep/fsc \
water/water_md
ビルド手順
#!/bin/sh
VERSION=7.3.1
INSTALL_PREFIX=/apl/nwchem/7.3.1BASEDIR=/home/users/${USER}/Software/NWChem/${VERSION}
NWCHEM_GIT=https://github.com/nwchemgit/nwchem.git
WORKDIR=/gwork/users/${USER}/nwchem-release#RUNTESTMD=runtest.md.mpi
#RUNTESTMD_PATH=${BASEDIR}/${RUNTESTMD}#---------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited
module -s purge
module -s load gcc-toolset/15
module -s load mkl/2025.3
module -s load openmpi/4.1.8/gcc15mkdir -p ${WORKDIR}
cd ${WORKDIR}
if [ -d nwchem ]; then
mv nwchem nwchem-erase
rm -rf nwchem-erase &
figit clone ${NWCHEM_GIT} -b v${VERSION}-release
export NWCHEM_TOP=${WORKDIR}/nwchem
export NWCHEM_MODULES="all python"
export NWCHEM_TARGET=LINUX64
export ARMCI_NETWORK=MPI-PR
export USE_OPENMP=y
export USE_MPI=y
export USE_MPIF=y
export USE_MPIF4=yexport USE_NOFSCHECK=TRUE
export USE_NOIO=TRUE
export MRCC_METHODS=TRUE
export CCSDTQ=TRUE
#export LIB_DEFINES=-DDFLT_TOT_MEM=268435456 # 2 GiB/process
export LIB_DEFINES=-DDFLT_TOT_MEM=180000000 # 1.8 GB/processexport PYTHONVERSION=3.6
export BLAS_SIZE=8
export BLASOPT="$(mkl_link_tool -libs --quiet -c gnu_f -o gomp -i ilp64)"
export LAPACK_SIZE=8
export LAPACK_LIB="${BLASOPT}"
export USE_SCALAPACK=y
export SCALAPACK_SIZE=8
export SCALAPACK="$(mkl_link_tool -libs --quiet -c gnu_f -o gomp -i ilp64 --cluster_library=scalapack -m openmpi)"cd ${NWCHEM_TOP}/src
# cheat
mkdir ../bin
ln -s /usr/libexec/platform-python3.6-config ../bin/python3.6-config
export PATH="${PATH}:${NWCHEM_TOP}/bin:${NWCHEM_TOP}/QA"make nwchem_config
make
# involve also version info
cd ${NWCHEM_TOP}/src/util
make version
make
cd ${NWCHEM_TOP}/src
make link
cd ${NWCHEM_TOP}# installation
mkdir -p ${INSTALL_PREFIX}
cp -fr LICENSE.TXT README.md release.notes.* examples ${INSTALL_PREFIX}mkdir -p ${INSTALL_PREFIX}/bin
cp -f ${NWCHEM_TOP}/bin/${NWCHEM_TARGET}/nwchem ${INSTALL_PREFIX}/bin
chmod 755 ${INSTALL_PREFIX}/bin/nwchemcp -fr ${NWCHEM_TOP}/src/data ${INSTALL_PREFIX}
cp -fr ${NWCHEM_TOP}/src/basis/libraries ${INSTALL_PREFIX}/data
cp -fr ${NWCHEM_TOP}/src/basis/libraries.bse ${INSTALL_PREFIX}/data
cp -fr ${NWCHEM_TOP}/src/nwpw/libraryps ${INSTALL_PREFIX}/data
# create default.nwchemrc
cat << EOS > ${INSTALL_PREFIX}/default.nwchemrc
nwchem_basis_library ${INSTALL_PREFIX}/data/libraries/
nwchem_nwpw_library ${INSTALL_PREFIX}/data/libraryps/
ffield amber
amber_1 ${INSTALL_PREFIX}/data/amber_s/
amber_2 ${INSTALL_PREFIX}/data/amber_x/
#amber_3 ${INSTALL_PREFIX}/data/amber_q/
#amber_4 ${INSTALL_PREFIX}/data/amber_u/
spce ${INSTALL_PREFIX}/data/solvents/spce.rst
charmm_s ${INSTALL_PREFIX}/data/charmm_s/
charmm_x ${INSTALL_PREFIX}/data/charmm_x/
EOS# some tests need this...
cp -f ${INSTALL_PREFIX}/default.nwchemrc ~/.nwchemrc# run test
export NWCHEM_EXECUTABLE=${INSTALL_PREFIX}/bin/nwchem
export OMP_NUM_THREADS=1
cd ${NWCHEM_TOP}/QA
./doqmtests.mpi 2 fast >& doqmtests.mpi.fast.log
#./doqmtests.mpi 48 >& doqmtests.mpi.log#cp -f ${RUNTESTMD_PATH} .
#sh ${RUNTESTMD} >& runtest.md.mpi.logmv testoutputs testoutputs-serial
mkdir -p ${INSTALL_PREFIX}/testlog
cp -fr doqmtests.mpi.fast.log \
testoutputs-serial \
${INSTALL_PREFIX}/testlog
テスト
以下のスクリプトでジョブとして実行
#!/bin/sh
#PBS -l select=1:ncpus=48:mpiprocs=48:ompthreads=1
#PBS -l walltime=24:00:00VERSION=7.3.1
INSTALL_PREFIX=/apl/nwchem/7.3.1BASEDIR=/home/users/${USER}/Software/NWChem/${VERSION}
NWCHEM_GIT=https://github.com/nwchemgit/nwchem.gitWORKDIR=/gwork/users/${USER}/nwchem-release
RUNTESTMD=runtest.md.mpi
RUNTESTMD_PATH=${BASEDIR}/${RUNTESTMD}#---------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited
module -s purge
module -s load gcc-toolset/15
module -s load mkl/2025.3
module -s load openmpi/4.1.8/gcc15export NWCHEM_TOP=${WORKDIR}/nwchem
# run test
export NWCHEM_EXECUTABLE=${INSTALL_PREFIX}/bin/nwchem
#export OMP_NUM_THREADS=1
export PATH="$PATH:$NWCHEM_TOP/QA"cd ${NWCHEM_TOP}/QA
./doqmtests.mpi 48 >& doqmtests.mpi.log
cp -f ${RUNTESTMD_PATH} .
sh ${RUNTESTMD} >& runtest.md.mpi.logmv testoutputs testoutputs-mpi
mkdir -p ${INSTALL_PREFIX}/testlog
cp -fr doqmtests.mpi.log \
runtest.md.mpi.log \
testoutputs-mpi \
${INSTALL_PREFIX}/testlog
テスト結果
テスト結果は /apl/nwchem/7.3.1/testlog に格納されています。
シリアル版(doqmtests.mpi.fast.log)失敗リスト
- h2o-b3lyp-disp/h2o-b3lyp-disp => メモリ不足
- (oh2/oh2 => 失敗すべきテスト)
- dft_siosi3/dft_siosi3 => メモリ不足
- tce_cr_eom_t_ozone/tce_cr_eom_t_ozone => 0:createfile:failed ga_create size/nproc bytes:
- tce_mrcc_bwcc/tce_mrcc_bwcc => マイナーな数値エラー(-76.0643135404 vs -76.0643135403)
- tce_mrcc_mkcc/tce_mrcc_mkcc => マイナーな数値エラー(-76.0630229504 vs -76.0630229503 と -76.0702306002 vs -76.0702306001)
- tce_mrcc_bwcc_subgroups/tce_mrcc_bwcc_subgroups => Caught signal 8 (Floating point exception: integer divide by zero)
- qmmm_grad0/qmmm_grad0 => メモリ不足
- lys_qmmm/lys_qmmm => 同上
- ethane_qmmm/ethane_qmmm => 同上
- qmmm_freq/qmmm_freq => 同上
- h2o-b3lyp-disp/h2o-b3lyp-disp => 同上
- o2_ccca/o2_ccca => 0:createfile: failed ga_create size/nproc bytes:
並列版(doqmtests.mpi.log)失敗リスト
- h2o-b3lyp-disp/h2o-b3lyp-disp, oh2/oh2, qmmm_grad0/qmmm_grad0, lys_qmmm/lys_qmmm, ethane_qmmm/ethane_qmmm, qmmm_freq/qmmm_freq, h2o-b3lyp-disp/h2o-b3lyp-disp => シリアル版と同じ
- tce_cc2_c2/tce_cc2_c2 => 時間切れ?
- k6h2o/k6h2o => k6h2o.err: No such file or directory (時間切れ?)
- rt_tddft_mocap/rt_tddft_mocap => 時間切れ?
- rt_tddft_water_abs_spec/rt_tddft_water_abs_spec => 時間切れ?
- ecp_freq/ecp_freq => スクラッチ不足?
- ethanol/ethanol_md => ethanol_md.err: No such file or directory (時間切れ?)
- ethanol/ethanol_ti => ethanol_ti.err: No such file or directory (時間切れ?)
- p2ta-vem-ri/p2ta-vem-ri => インプットファイル存在せず(7.3.1 リリース後に追加されていることは確認済)
- dft_nio_r2scan/dft_nio_r2scan => xc_input: invalid format (?)
MDテスト(runtest.md.mpi.log)失敗リスト
- na_k/nak_md => ?
- crown/crown_md => ethanol_md.err: No such file or directory (時間切れ?)
- ethanol/ethanol_md => ethanol_md.err: No such file or directory (時間切れ?)
- ethanol/ethanol_ti => ethanol_ti.err: No such file or directory (時間切れ?)
- had/had_em => 0: Dimension mwm too small 0
- had/had_md => ?
- prep/a3n => Unresolved atom types in fragment HEM
メモ
- 7.2.3(GCC13版) と同様の方法でビルド。
- ソースコードは git clone での取得に変更。ilp64 版の MKL を使う限りでは問題は無いはず。
- 今回は上記 GCC15 (mkl(gomp))と Intel Classic コンパイラ版(openmpi)と ifx 版の3つのみを検証。
- Intel Classic 版の方が速度が出るケースが存在するため、別ビルドとして用意。
- ifx 版は他のバージョンに比べて速度が出ていないため回避。
- Open MPI も 4.1.8 のみで検証