DIRAC 19.0
Webpage
http://www.diracprogram.org/doku.php
Version
19.0
Build Environment
- Intel oneAPI Compiler Classic 2022.2.1 (oneAPI Base Toolkit 2022.3.1)
Files Required
- DIRAC-19.0-Source.tar.gz
- openmpi-3.1.6.tar.bz2
- ((8-byte integer version; built during the procedure below)
- diff_memcon (see /apl/dirac/19.0/patches/diff_memcon)
- to increase available memory amount
Build Procedure
#!/bin/sh
VERSION=19.0
INSTALL_PREFIX=/apl/dirac/19.0
# openmpi (8-byte integer)
OMPI_VERSION=3.1.6
OMPI_INSTALL_PREFIX=${INSTALL_PREFIX}/openmpi316_i8
OMPI_TARBALL=/home/users/${USER}/Software/OpenMPI/${OMPI_VERSION}/openmpi-${OMPI
_VERSION}.tar.bz2
PBSROOT=/apl/pbs/22.05.11/
# dirac
BASEDIR=/home/users/${USER}/Software/DIRAC/${VERSION}
TARBALL=${BASEDIR}/DIRAC-${VERSION}-Source.tar.gz
PATCH_README=${BASEDIR}/README.patch
PATCH_MEMCONTROL=${BASEDIR}/diff_memcon
WORKDIR=/gwork/users/${USER}
PARALLEL=8
#-------------------------------------------------------------------------
umask 0022
export LC_ALL=C
export LANG=C
export OMP_NUM_THREADS=1
ulimit -s unlimited
module -s purge
. ~/intel/oneapi/compiler/2022.2.1/env/vars.sh
module -s load mkl/2022.2.1
# openmpi (8-byte integer default)
cd ${WORKDIR}
if [ -d openmpi-${OMPI_VERSION} ]; then
mv openmpi-${OMPI_VERSION} openmpi_erase
rm -rf openmpi_erase &
fi
tar jxf ${OMPI_TARBALL}
cd openmpi-${OMPI_VERSION}
mkdir rccs-i8 && cd rccs-i8
CC=icc CXX=icpc FC=ifort FCFLAGS=-i8 CFLAGS=-m64 CXXFLAGS=-m64 \
../configure --prefix=${OMPI_INSTALL_PREFIX} \
--with-tm=${PBSROOT} \
--enable-mpi-cxx \
--with-ucx
make -j ${PARALLEL} && make install && make check
# dirac
cd ${WORKDIR}
if [ -d DIRAC-${VERSION}-Source ]; then
mv DIRAC-${VERSION}-Source DIRAC_erase
rm -rf DIRAC_erase &
fi
export PATH="${OMPI_INSTALL_PREFIX}/bin:$PATH"
export LIBRARY_PATH="${OMPI_INSTALL_PREFIX}/lib:$LIBRARY_PATH"
export LD_LIBRARY_PATH="${OMPI_INSTALL_PREFIX}/lib:$LD_LIBRARY_PATH"
export DIRAC_TMPDIR=${WORKDIR}
tar zxf ${TARBALL}
cd DIRAC-${VERSION}-Source
patch -p0 < ${PATCH_MEMCONTROL}
for f in test/*/test; do
if [ ! -d $f ]; then
sed -i -e "s/env python/env python3/" $f
fi
done
sed -i -e "s/python/python3/" test/runtest_dirac.py test/runtest_config.py
python3 ./setup \
--mpi \
--fc=mpif90 \
--cc=mpicc \
--cxx=mpicxx \
--mkl=parallel \
--int64 \
--python=python3 \
--extra-fc-flags="-march=core-avx2 -I${OMPI_INSTALL_PREFIX}/lib" \
--extra-cc-flags="-march=core-avx2" \
--extra-cxx-flags="-march=core-avx2" \
--prefix=${INSTALL_PREFIX} \
build.rccs
cd build.rccs
make -j ${PARALLEL} && make install
# copy license and patch files
cp -f ../LICENSE ${INSTALL_PREFIX}
cp -f ${PATCH_README} ${INSTALL_PREFIX}
mkdir ${INSTALL_PREFIX}/patches
cp -f ${PATCH_MEMCONTROL} ${INSTALL_PREFIX}/patches
# store test results
mkdir ${INSTALL_PREFIX}/test_results
mkdir ${INSTALL_PREFIX}/test_results/serial
mkdir ${INSTALL_PREFIX}/test_results/parallel
# serial test
export DIRAC_MPI_COMMAND="mpirun -np 1"
make test
cp Testing/Temporary/LastTest.log ${INSTALL_PREFIX}/test_results/serial
if [ -f Testing/Temporary/LastTestsFailed.log ]; then
cp Testing/Temporary/LastTestsFailed.log ${INSTALL_PREFIX}/test_results/serial
fi
# parallel test
export DIRAC_MPI_COMMAND="mpirun -np ${PARALLEL}"
make test
cp Testing/Temporary/LastTest.log ${INSTALL_PREFIX}/test_results/parallel
if [ -f Testing/Temporary/LastTestsFailed.log ]; then
cp Testing/Temporary/LastTestsFailed.log ${INSTALL_PREFIX}/test_results/parallel
fi
exit 0
Tests
Failed tests (serial)
- 43 - fde_response_mag (Failed)
- 44 - fde_response_shield (Failed)
- 54 - mcscf_energy (Failed)
- 65 - eedm_mhyp_ensps_krci (Failed)
- 73 - bss_energy (Failed)
- 74 - pam_test (Failed)
- 129 - operators_mo_mtx_elements (Failed)
- 131 - spinrot (Failed)
Failed tests (parallel)
- 18 - polprp_ph (Failed)
- 43 - fde_response_mag (Failed)
- 44 - fde_response_shield (Failed)
- 46 - fscc_restart (Failed)
- 54 - mcscf_energy (Failed)
- 61 - krci_energy_q_corrections (Timeout)
- 65 - eedm_mhyp_ensps_krci (Failed)
- 73 - bss_energy (Failed)
- 74 - pam_test (Failed)
- 111 - lucita_short (Failed)
- 129 - operators_mo_mtx_elements (Failed)
- 131 - spinrot (Failed)
Notes
- Please see /apl/dirac/19.0/test_results for results of test.
- In the previous build, there were no errors for 43, 44, 54, 61.
- 43, 44: numerical errors
- 54, 61: what are the problems?
- Switching to Intel Compiler 2022.0.2 does not help.
- Didn't try with gcc.