LAMMPS 2Aug23 (intel oneapi classic)
ウェブページ
https://www.lammps.org

バージョン
2Aug23

ビルド環境
Intel oneAPI Compiler Classic 2023.2.0
Intel MKL 2023.2.0
Intel MPI 2021.10.0

ビルドに必要なファイル
lammps-stable_2Aug2023.tar.gz(一部ファイルは以下スクリプト中で取得)

ビルド手順#!/bin/sh
VERSION=2Aug23
NAME=lammps-stable_2Aug2023
INSTALL_PREFIX=/apl/lammps/2023-Aug2-intel
BASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}LAMMPS_TARBALL=${BASEDIR}/${NAME}.tar.gz
WORKDIR=/gwork/users/${USER}LAMMPS_WORKDIR=${WORKDIR}/${NAME}
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/include
PARALLEL=12#-----------------------------------------------------------------umask 0022
export LANG=C
ulimit -s unlimited
module -s purge# load intel env (2023.2.0). ~/intel/oneapi/compiler/latest/env/vars.sh
module -s load intelmpi/2021.10.0
module -s load mkl/2023.2.0
PYTHONEXE=/usr/bin/python3.6m
PYTHONINC=/usr/include/python3.6m
cd ${WORKDIR}
if [ -d ${NAME} ]; thenmv ${NAME} lammps_erase
rm -rf lammps_erase &fitar zxf ${LAMMPS_TARBALL}
cd ${NAME}

sed -i -e "s/xHost/march=core-avx2/" cmake/CMakeLists.txt
mkdir build && cd build# Disabled PKGs:# FFMPEG, ADIOS, MDI, VTK: noavail# QUIP: no avail# ML-HDNNP: failed to build# ML-IAP: failed to build# KIM: CDDL is imcompatible with GPL# MPIIO: not maintained?
cmake ../cmake \-DLAMMPS_MACHINE=rccs \-DENABLE_TESTING=on \-DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \-DCMAKE_C_COMPILER=icc \-DCMAKE_CXX_COMPILER=icpc \-DCMAKE_Fortran_COMPILER=ifort \-DCMAKE_MPI_C_COMPILER=mpiicc \-DCMAKE_MPI_CXX_COMPILER=mpiicpc \-DCMAKE_MPI_Fortran_COMPILER=mpiifort \-DCMAKE_C_FLAGS_RELEASE="-O3 -DNDEBUG" \-DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG" \-DCMAKE_Fortran_FLAGS_RELEASE="-O3 -DNDEBUG" \-DPython_EXECUTABLE=${PYTHONEXE} \-DPython_INCLUDE_DIR=${PYTHONINC} \-DLAMMPS_EXCEPTIONS=on \-DBUILD_SHARED_LIBS=on \-DBUILD_TOOLS=on \-DBUILD_MPI=on \-DBUILD_OMP=on \-DBUILD_LAMMPS_GUI=off \-DFFT=MKL \-DFFT_SINGLE=on \-DFFT_MKL_THREADS=on \-DWITH_JPEG=on \-DWITH_PNG=on \-DWITH_GZIP=on \-DPKG_ADIOS=off \-DPKG_AMOEBA=on \-DPKG_ASPHERE=on \-DPKG_ATC=on \-DPKG_AWPMD=on \-DPKG_BOCS=on \-DPKG_BODY=on \-DPKG_BPM=on \-DPKG_BROWNIAN=on \-DPKG_CG-DNA=on \-DPKG_CG-SPICA=on \-DPKG_CLASS2=on \-DPKG_COLLOID=on \-DPKG_COLVARS=on \-DPKG_COMPRESS=on \-DPKG_CORESHELL=on \-DPKG_DIELECTRIC=on \-DPKG_DIFFRACTION=on \-DPKG_DIPOLE=on \-DPKG_DPD-BASIC=on \-DPKG_DPD-MESO=on \-DPKG_DPD-REACT=on \-DPKG_DPD-SMOOTH=on \-DPKG_DRUDE=on \-DPKG_ELECTRODE=on \-DPKG_EFF=on \-DPKG_EXTRA-COMPUTE=on \-DPKG_EXTRA-DUMP=on \-DPKG_EXTRA-FIX=on \-DPKG_EXTRA-MOLECULE=on \-DPKG_EXTRA-PAIR=on \-DPKG_FEP=on \-DPKG_GPU=off \-DPKG_GRANULAR=on \-DPKG_H5MD=on \-DPKG_INTEL=on \-DPKG_INTERLAYER=on \-DPKG_KIM=off \-DDOWNLOAD_KIM=off \-DPKG_KOKKOS=off \-DKokkos_ARCH_ZEN3=off \-DKokkos_ENABLE_OPENMP=off \-DPKG_KSPACE=on \-DPKG_LATBOLTZ=on \-DPKG_LEPTON=on \-DPKG_MACHDYN=on \-DDOWNLOAD_EIGEN3=on \-DPKG_MANIFOLD=on \-DPKG_MANYBODY=on \-DPKG_MC=on \-DPKG_MDI=on \-DPKG_MEAM=on \-DPKG_MESONT=on \-DPKG_MGPT=on \-DPKG_MISC=on \-DPKG_ML-HDNNP=off \-DDOWNLOAD_N2P2=off \-DPKG_ML-IAP=off \-DPKG_ML-PACE=on \-DPKG_ML-QUIP=off \-DDOWNLOAD_QUIP=off \-DPKG_ML-RANN=on \-DPKG_ML-SNAP=on \-DPKG_MOFFF=on \-DPKG_MOLECULE=on \-DPKG_MOLFILE=on \-DMOLFILE_INCLUDE_DIR=${VMD_MOLFILE_INC} \-DPKG_MPIIO=off \-DPKG_MSCG=on \-DPKG_NETCDF=on \-DPKG_OPENMP=on \-DPKG_OPT=on \-DPKG_ORIENT=on \-DPKG_PERI=on \-DPKG_PHONON=on \-DPKG_PLUGIN=on \-DPKG_PLUMED=on \-DDOWNLOAD_PLUMED=on \-DPKG_POEMS=on \-DPKG_PTM=on \-DPKG_PYTHON=on \-DPKG_QEQ=on \-DPKG_QMMM=on \-DPKG_QTB=on \-DPKG_REACTION=on \-DPKG_REAXFF=on \-DPKG_REPLICA=on \-DPKG_RIGID=on \-DPKG_SCAFACOS=on \-DDOWNLOAD_SCAFACOS=on \-DPKG_SHOCK=on \-DPKG_SMTBQ=on \-DPKG_SPH=on \-DPKG_SPIN=on \-DPKG_SRD=on \-DPKG_TALLY=on \-DPKG_UEF=on \-DPKG_VORONOI=on \-DDOWNLOAD_VORO=on \-DPKG_VTK=off \-DPKG_YAFF=on \-DBLAS_LIBRARIES="-qmkl" \-DCMAKE_BUILD_TYPE=Release
make VERBOSE=1 -j ${PARALLEL}
export OMP_NUM_THREADS=2
make test # will put error...
make install
cp -a ../examples ${INSTALL_PREFIX}
cd ${INSTALL_PREFIX}
for f in etc/profile.d/*; doln -s $f .
done
cd lib64
if [ -f liblammps_rccs.so ]; thenln -s liblammps_rccs.so liblammps.sofi
if [ -f liblammps_rccs.so.0 ]; thenln -s liblammps_rccs.so.0 liblammps.so.0
fi

パッケージ
AMOEBA ASPHERE ATC AWPMD BOCS BODY BPM BROWNIAN CG-DNA CG-SPICA CLASS2 COLLOID COLVARS COMPRESS CORESHELL DIELECTRICDIFFRACTION DIPOLE DPD-BASIC DPD-MESO DPD-REACT DPD-SMOOTH DRUDE EFF ELECTRODE EXTRA-COMPUTE EXTRA-DUMP EXTRA-FIX EXTRAMOLECULE EXTRA-PAIR FEP GRANULAR H5MD INTEL INTERLAYER KSPACE LATBOLTZ LEPTON MACHDYN MANIFOLD MANYBODY MC MDI MEAMMESONT MGPT MISC ML-PACE ML-RANN ML-SNAP MOFFF MOLECULE MOLFILE MSCG NETCDF OPENMP OPT ORIENT PERI PHONON PLUGIN PLUMEDPOEMS PTM PYTHON QEQ QMMM QTB REACTION REAXFF REPLICA RIGID SCAFACOS SHOCK SMTBQ SPH SPIN SRD TALLY UEF VORONOI YAFF

テスト
テストログのコピーは /apl/lammps/2023-Aug2-intel/Testing/ に置いています。
詳細についてはそちらをご確認ください。
(失敗している数こそ多いですが、軽微な数値エラーが主です。ただし、いくつかは注意すべきものがあるかもしれません。)
13 - AtomStyles (Failed)
37 - SimpleCommands (SEGFAULT)
39 - Groups (Failed)
40 - Regions (Subprocess aborted)
118 - MolPairStyle:coul_diel (Failed)
125 - MolPairStyle:coul_shield (Failed)
127 - MolPairStyle:coul_slater_long (Failed)
169 - MolPairStyle:lj_class2_soft (Failed)
188 - MolPairStyle:lj_cut_soft (Failed)
194 - MolPairStyle:lj_expand_coul_long (Failed)
211 - MolPairStyle:lj_spica_coul_long (Failed)
212 - MolPairStyle:lj_spica_coul_table (Failed)
213 - MolPairStyle:lj_switch3_coulgauss_long (Failed)
237 - MolPairStyle:tip4p_long_soft (Failed)
240 - MolPairStyle:wf_cut (Failed)249 - AtomicPairStyle:buck_coul_cut_qeq_point (Failed)
250 - AtomicPairStyle:buck_coul_cut_qeq_shielded (Failed)
267 - AtomicPairStyle:edip (Failed)273 - AtomicPairStyle:lepton_sphere (Failed)274 - AtomicPairStyle:lj_cut_sphere (Failed)
275 - AtomicPairStyle:lj_expand_sphere (Failed)
277 - AtomicPairStyle:meam (Failed)
280 - AtomicPairStyle:meam_spline (Failed)281 - AtomicPairStyle:meam_sw_spline (Failed)284 - AtomicPairStyle:reaxff-acks2 (Failed)285 - AtomicPairStyle:reaxff-acks2_efield (Failed)
286 - AtomicPairStyle:reaxff (Failed)
287 - AtomicPairStyle:reaxff_lgvdw (Failed)288 - AtomicPairStyle:reaxff_noqeq (Failed)289 - AtomicPairStyle:reaxff_tabulate (Failed)
290 - AtomicPairStyle:reaxff_tabulate_flag (Failed)
307 - ManybodyPairStyle:comb (Failed)
315 - ManybodyPairStyle:ilp-graphene-hbn (Failed)
316 - ManybodyPairStyle:ilp-graphene-hbn_notaper (Failed)
320 - ManybodyPairStyle:lcbop (Failed)329 - ManybodyPairStyle:pace_product (Failed)
330 - ManybodyPairStyle:pace_recursive (Failed)345 - ManybodyPairStyle:tersoff (Failed)
350 - ManybodyPairStyle:tersoff_shift (Failed)360 - BondStyle:gaussian (Subprocess aborted)363 - BondStyle:harmonic_restrain (Failed)399 - KSpaceStyle:ewald_conp_charge (Failed)409 - KSpaceStyle:pppm_ad (Failed)
410 - KSpaceStyle:pppm_cg (Failed)
412 - KSpaceStyle:pppm_cg_tiled (Failed)421 - KSpaceStyle:pppm_disp_tip4p (Failed)429 - KSpaceStyle:pppm_tip4p (Failed)
434 - KSpaceStyle:scafacos_direct (Failed)
435 - KSpaceStyle:scafacos_ewald (Failed)
436 - KSpaceStyle:scafacos_fmm (Failed)
437 - KSpaceStyle:scafacos_fmm_tuned (Failed)
438 - KSpaceStyle:scafacos_p2nfft (Failed)442 - FixTimestep:addforce_const (Failed)444 - FixTimestep:addtorque_const (Failed)451 - FixTimestep:deform_tri (Failed)468 - FixTimestep:nph (Failed)469 - FixTimestep:nph_sphere (Failed)471 - FixTimestep:npt_iso (Failed)472 - FixTimestep:npt_sphere_aniso (Failed)473 - FixTimestep:npt_sphere_iso (Failed)482 - FixTimestep:nvt-psllod (Failed)483 - FixTimestep:nvt-sllod (Failed)
501 - FixTimestep:rigid_npt_small (Failed)
515 - FixTimestep:smd_couple (Failed)523 - FixTimestep:temp_csld (Failed)531 - FixTimestep:wall_morse_const (Failed)533 - FixTimestep:wall_table_linear (Failed)534 - FixTimestep:wall_table_spline (Failed)549 - DihedralStyle:table_cut_linear (Failed)551 - DihedralStyle:table_linear (Failed)552 - DihedralStyle:table_spline (Failed)562 - ImproperStyle:inversion_harmonic (Failed)メモ
intel パッケージを有効にできる場合であれば、こちらの方が GCC 版よりも少し速度的に有利かもしれません。intel パッケージを使わないのであれば、まずは GCC 版を検討すべきかもしれません。
libhcoll が有効な状態で intel パッケージを使うと速度が少し落ちる可能性があります。
この問題が存在するため、module (lammps/2023-Aug2-intel) では I_MPI_COLL_EXTERNAL=no を設定しています。
デフォルト設定のように -xHost で設定していると、AMD EPYC では intel パッケージによる高速化が効きません。そのため、強制的に変更しています。
新しい icx, icpx, ifx を使う場合にはデフォルト設定でも問題ありません。ただ、少し速度が出ません。
oneapi のコンパイラ(icx, icpx, ifx)でもビルドは可能ですが、classic 版(icc, icpc, ifort)の方が問題が少ないようですscafacos が oneapi コンパイラに対応していないため有効化できずintel パッケージ有効化時の速度が classic 版に比べて若干劣るように見える(rhodo のインプットを使用)
openmpi を使えば SimpleCommands の segfault が回避できたりしますが、若干計算速度が不安定になるため、今回は intel
mpi を使っています。