Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ATDM/ats1: Drop intel-18 support and fix intel-19 environment #8495

Merged
merged 12 commits into from
Jan 14, 2021

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

3 changes: 3 additions & 0 deletions cmake/std/atdm/ATDMDevEnvSettings.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@

INCLUDE("${CMAKE_CURRENT_LIST_DIR}/utils/ATDMDevEnvUtils.cmake")

# Ensure that LDFLAGS is picked up by the CMake compiler checks
SET(CMAKE_EXE_LINKER_FLAGS "$ENV{LDFLAGS} ${CMAKE_EXE_LINKER_FLAGS}")

#
# A) Assert the right env vars are set, read in env vars, and set local
# defaults
Expand Down
12 changes: 4 additions & 8 deletions cmake/std/atdm/ats1/all_supported_builds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,8 @@
export ATDM_CONFIG_CTEST_S_BUILD_NAME_PREFIX=Trilinos-atdm-

export ATDM_CONFIG_ALL_SUPPORTED_BUILDS=(
ats1-knl_intel-19.0.4_mpich-7.7.6_openmp_static_opt
ats1-knl_intel-18.0.5_mpich-7.7.6_openmp_static_opt
ats1-hsw_intel-19.0.4_mpich-7.7.6_openmp_static_opt
ats1-hsw_intel-18.0.5_mpich-7.7.6_openmp_static_opt
ats1-knl_intel-19.0.4_mpich-7.7.6_openmp_static_dbg
ats1-knl_intel-18.0.5_mpich-7.7.6_openmp_static_dbg
ats1-hsw_intel-19.0.4_mpich-7.7.6_openmp_static_dbg
ats1-hsw_intel-18.0.5_mpich-7.7.6_openmp_static_dbg
ats1-knl_intel-19.0.4_mpich-7.7.15_openmp_static_opt
ats1-hsw_intel-19.0.4_mpich-7.7.15_openmp_static_opt
ats1-knl_intel-19.0.4_mpich-7.7.15_openmp_static_dbg
ats1-hsw_intel-19.0.4_mpich-7.7.15_openmp_static_dbg
)
23 changes: 6 additions & 17 deletions cmake/std/atdm/ats1/custom_builds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,33 +8,22 @@
# Custom compiler selection logic

if atdm_match_any_buildname_keyword \
intel-19.0.4-mpich-7.7.6 \
intel-19.0.4_mpich-7.7.6 \
intel-19.0.4-mpich-7.7.15 \
intel-19.0.4_mpich-7.7.15 \
intel-19.0.4 \
intel-19 \
intel \
default \
; then
export ATDM_CONFIG_COMPILER=INTEL-19.0.4_MPICH-7.7.6
# Note: matching "intel" below is dangerous. The user could easily make a typo
# and wind up with the intel-18 env. Leaving "intel" as a match below due to
# customer request.
elif atdm_match_any_buildname_keyword \
intel-18.0.5-mpich-7.7.6 \
intel-18.0.5_mpich-7.7.6 \
intel-18.0.5 \
intel-18 \
default \
intel \
; then
export ATDM_CONFIG_COMPILER=INTEL-18.0.5_MPICH-7.7.6
export ATDM_CONFIG_COMPILER=INTEL-19.0.4_MPICH-7.7.15
else
echo
echo "***"
echo "*** ERROR: A supported compiler was not selected for 'ats1' env - $ATDM_CONFIG_BUILD_NAME"
echo "***"
echo "*** Supported compilers include:"
echo "***"
echo "**** intel-19.0.4-mpich-7.7.6 (intel-19)"
echo "**** intel-18.0.5-mpich-7.7.6 (intel-18, intel, default)"
echo "**** intel-19.0.4-mpich-7.7.15 (intel-19, intel, default)"
echo "***"
return

Expand Down
43 changes: 11 additions & 32 deletions cmake/std/atdm/ats1/custom_builds_unit_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,55 +11,34 @@ testAll() {

ATDM_CONFIG_SYSTEM_DIR=${ATDM_CONFIG_SCRIPT_DIR}/ats1

ATDM_CONFIG_BUILD_NAME=before-intel-19.0.4-mpich-7.7.6_after
ATDM_CONFIG_BUILD_NAME=before-intel-19.0.4-mpich-7.7.15_after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.15 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before-intel-19.0.4_mpich-7.7.6-after
ATDM_CONFIG_BUILD_NAME=before-intel-19.0.4_mpich-7.7.15-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.15 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before_intel-19.0.4-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.15 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before_intel-19-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.15 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=default
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}
ATDM_CONFIG_COMPILER=INTEL-19.0.4_MPICH-7.7.15

ATDM_CONFIG_BUILD_NAME=before-intel-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before-intel-18.0.5-mpich-7.7.6_after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before-intel-18.0.5_mpich-7.7.6-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before_intel-18.0.5-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=before_intel-18-after
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=BEFORE-INTEL-AFTER
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-18.0.5_MPICH-7.7.6 ${ATDM_CONFIG_COMPILER}

# Make sure 'arms' does not match 'arm'
ATDM_CONFIG_BUILD_NAME=anything-intell
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} DEFAULT ${ATDM_CONFIG_COMPILER}

ATDM_CONFIG_BUILD_NAME=intel
. ${ATDM_CONFIG_SCRIPT_DIR}/utils/set_build_options.sh
${_ASSERT_EQUALS_} INTEL-19.0.4_MPICH-7.7.15 ${ATDM_CONFIG_COMPILER}

}


Expand Down
100 changes: 10 additions & 90 deletions cmake/std/atdm/ats1/environment.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@
# This source script gets the settings from the ATDM_CONFIG_BUILD_NAME var.
#
################################################################################

if [ "$ATDM_CONFIG_COMPILER" == "DEFAULT" ] ; then
export ATDM_CONFIG_COMPILER=INTEL-19.0.4_MPICH-7.7.6
fi

if [ "$ATDM_CONFIG_KOKKOS_ARCH" == "DEFAULT" ] ; then
export ATDM_CONFIG_KOKKOS_ARCH=HSW
fi
Expand All @@ -34,27 +29,13 @@ export ATDM_CONFIG_BUILD_COUNT=32
# 64 processes so we reduced this to just 32 to try to avoid these. (See
# ATDV-361)

# Common sparc tpl path values
sparc_tpl_prefix_path="/usr/projects/sparc/tpls"
system_name="ats1"
node_arch=""

if [[ "$ATDM_CONFIG_KOKKOS_ARCH" == "HSW" ]]; then
node_arch="hsw"
module unload craype-mic-knl
module load craype-haswell
# HSW nodes have 64 virtual cores.
# Allow no more than 8 virtual cores per task.
export ATDM_CONFIG_MPI_POST_FLAGS="-c 4"
# If we have 1 MPI rank per srun command and 1 cpu per task, we can run up to 32 2-threaded tests "in parallel" on virtual cores.
export ATDM_CONFIG_CTEST_PARALLEL_LEVEL=1
module load sparc-dev/intel-19.0.4_mpich-7.7.15_hsw
export ATDM_CONFIG_CTEST_PARALLEL_LEVEL=16
unset OMP_PLACES
elif [[ "$ATDM_CONFIG_KOKKOS_ARCH" == "KNL" ]]; then
node_arch="knl"
module unload craype-haswell
module load craype-mic-knl
module load sparc-dev/intel-19.0.4_mpich-7.7.15_knl
export SLURM_TASKS_PER_NODE=16
export OMP_PLACES=threads
export OMP_PROC_BIND=spread
# Ensure that no more than 8 tasks, per srun command, are launched.
export ATDM_CONFIG_MPI_PRE_FLAGS="--mpi=pmi2;--ntasks-per-node=8"
# KNL nodes have 272 virtual cores.
Expand All @@ -63,14 +44,15 @@ elif [[ "$ATDM_CONFIG_KOKKOS_ARCH" == "KNL" ]]; then
export ATDM_CONFIG_CTEST_PARALLEL_LEVEL=1
export ATDM_CONFIG_SBATCH_EXTRA_ARGS="-p knl -C cache --hint=multithread"
export ATDM_CONFIG_BUILD_COUNT=8
unset OMP_PLACES
unset OMP_PROC_BIND
else
echo
echo "***"
echo "*** ERROR: COMPILER=$ATDM_CONFIG_COMPILER and KOKKOS_ARCH=$ATDM_CONFIG_KOKKOS_ARCH is not"
echo "*** a supported combination on this system!"
echo "*** Combinations that are supported: "
echo "*** > intel-19.0.4_mpich-7.7.6"
echo "*** > intel-18.0.5_mpich-7.7.6"
echo "*** > intel-19.0.4_mpich-7.7.15"
echo "***"
return
fi
Expand All @@ -83,50 +65,16 @@ export ATDM_CONFIG_SBATCH_EXTRA_ARGS="$ATDM_CONFIG_SBATCH_EXTRA_ARGS --exclude=n
export OMP_NUM_THREADS=2

# Common modules and paths
module load cmake/3.14.6
module load git/2.19.1
export PATH=/projects/netpub/atdm/ninja-1.8.2/bin:$PATH
module unload cray-mpich
module load cray-mpich/7.7.6
module unload cray-libsci
module unload gcc

if [[ "$ATDM_CONFIG_COMPILER" == "INTEL-19.0.4"* ]]; then
module load gcc/8.2.0
module unload intel
module load intel/19.0.4
#sparc_tpl_ext=${system_name}-${node_arch}_intel-19.0.4
#sparc_tpl_mpi_ext=${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
elif [[ "$ATDM_CONFIG_COMPILER" == "INTEL-18.0.5"* ]]; then
module unload intel
module load intel/18.0.5
#sparc_tpl_ext=${system_name}-${node_arch}_intel-18.0.5
#sparc_tpl_mpi_ext=${system_name}-${node_arch}_intel-18.0.5_mpich-7.7.6
else
echo
echo "***"
echo "*** ERROR: COMPILER=$ATDM_CONFIG_COMPILER and KOKKOS_ARCH=$ATDM_CONFIG_KOKKOS_ARCH is not"
echo "*** a supported combination on this system!"
echo "*** Combinations that are supported: "
echo "*** > intel-19.0.4_mpich-7.7.6_openmp-HSW"
echo "*** > intel-19.0.4_mpich-7.7.6_openmp-KNL"
echo "*** > intel-18.0.5_mpich-7.7.6_openmp-HSW"
echo "*** > intel-18.0.5_mpich-7.7.6_openmp-KNL"
echo "***"
return
fi

export PATH=/usr/projects/hpcsoft/cle6.0/common/intel-clusterstudio/2019.4-068/compilers_and_libraries_2019/linux/mkl/bin:$PATH
export LD_LIBRARY_PATH=/usr/projects/hpcsoft/cle6.0/common/intel-clusterstudio/2019.4-068/compilers_and_libraries_2019/linux/mkl/lib/intel64:$LD_LIBRARY_PATH
# This linker path is needed for cmake's C, CXX, and Ftn compiler tests. This linker path is not shown
# anywhere in SPARC's environment but is needed in ATDM's environment. Cmake's compiler tests are
# ignoring LD_{CRAY,CRAYPAT,}_LIBRARY_PATH for some reason, so we add this path via LDFLAGS via
# s.t. it is added to CMAKE_EXE_LINKER_FLAGS before trilinos's cmake config invokes PROJECT().
export LDFLAGS="-L/opt/gcc/8.2.0/snos/lib/gcc/x86_64-suse-linux/8.2.0/ $LDFLAGS"
export LDFLAGS="-L/opt/gcc/8.3.0/snos/lib/gcc/x86_64-suse-linux/8.3.0/ -lpthread $LDFLAGS"

export CBLAS_ROOT=/usr/projects/hpcsoft/cle6.0/common/intel-clusterstudio/2019.4-068/compilers_and_libraries_2019/linux
export COMPILER_ROOT=/usr/projects/hpcsoft/cle6.0/common/intel-clusterstudio/2019.4-068/compilers_and_libraries_2019/linux
export MPI_ROOT=/opt/cray/pe/mpt/7.7.6/gni/mpich-intel/16.0
# 2021-01-09 -- Resolve linker errors in Seacas and Percept
export LDFLAGS="-L${MPI_ROOT}/lib -lmpich -lrt ${ATP_INSTALL_DIR}/lib/libAtpSigHandler.a ${ATP_INSTALL_DIR}/lib/libbreakpad_client_nostdlib.a $LDFLAGS"

export ATDM_CONFIG_TPL_FIND_SHARED_LIBS=OFF
export ATDM_CONFIG_Trilinos_LINK_SEARCH_START_STATIC=ON
Expand Down Expand Up @@ -154,51 +102,23 @@ export ATDM_CONFIG_LAPACK_LIBS="-L${CBLAS_ROOT}/mkl/lib/intel64;-L${CBLAS_ROOT}/
# Blas (intel) settings
export ATDM_CONFIG_BLAS_LIBS="-L${CBLAS_ROOT}/mkl/lib/intel64;-L${CBLAS_ROOT}/compiler/lib/intel64;-mkl;-lmkl_intel_lp64;-lmkl_intel_thread;-lmkl_core;-liomp5"

# Boost 1.65.1 settings
export BOOST_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/boost-1.72.0/00000000/${system_name}-${node_arch}_intel-19.0.4

# Hdf5 1.10.5 settings
export HDF5_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/hdf5-1.10.5/00000000/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
Comment on lines -157 to -161
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So nice how much got stripped out by using the sparc-dev modules directly.

export ATDM_CONFIG_HDF5_LIBS="-L${HDF5_ROOT}/lib;${HDF5_ROOT}/lib/libhdf5_hl.a;${HDF5_ROOT}/lib/libhdf5.a;-lz;-ldl"
#export ATDM_CONFIG_HDF5_NO_SYSTEM_PATHS=ON

# BINUTILS settings
export BINUTILS_ROOT="/usr"
export ATDM_CONFIG_BINUTILS_LIBS="${BINUTILS_ROOT}/lib64/libbfd.a;-lz;${BINUTILS_ROOT}/lib64/libiberty.a"

# Cgns settings
export CGNS_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/cgns-c09a5cd/d313cc2f822078e47c7dbdee074ecb0431e573eb/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
export ATDM_CONFIG_CGNS_LIBRARY_NAMES="cgns"

# Pnetcdf 1.10.0 settings
export PNETCDF_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/pnetcdf-1.12.1/6144dc67b2041e4093063a04e89fc1e33398bd09/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6

# Netcdf 4.7.0 settings
export NETCDF_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/netcdf-4.7.0/24baa07a3fa1ff9dbc8e70dc591ebbdec56783b2/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
export ATDM_CONFIG_NETCDF_LIBS="-L${BOOST_ROOT}/lib;-L${NETCDF_ROOT}/lib64;-L${PNETCDF_ROOT}/lib;-L${HDF5_ROOT}/lib;${BOOST_ROOT}/lib/libboost_program_options.a;${BOOST_ROOT}/lib/libboost_system.a;${NETCDF_ROOT}/lib64/libnetcdf.a;${PNETCDF_ROOT}/lib/libpnetcdf.a;${HDF5_ROOT}/lib/libhdf5_hl.a;${HDF5_ROOT}/lib/libhdf5.a;-lz;-ldl;-lm"

# Libhio 1.4.1.2 settings
export LIBHIO_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/libhio-1.4.1.2/00000000/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6

# Metis 4.0.3 settings
export METIS_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/parmetis-4.0.3/00000000/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6

# Parmetis 4.0.3 settings
export PARMETIS_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/parmetis-4.0.3/00000000/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
# Force linker order!
export ATDM_CONFIG_PARMETIS_LIBS="${PARMETIS_ROOT}/lib/libparmetis.a;${METIS_ROOT}/lib/libmetis.a"

# Superludist 5.4.0 settings
export SUPERLUDIST_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/superlu_dist-5.4.0/a3121eaff44f7bf7d44e625c3b3d2a9911e58876/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6
export ATDM_CONFIG_SUPERLUDIST_INCLUDE_DIRS="${SUPERLUDIST_ROOT}/include"
export ATDM_CONFIG_SUPERLUDIST_LIBS="${SUPERLUDIST_ROOT}/lib64/libsuperlu_dist.a"

# Sgm 20.23 settings
export SGM_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/sgm-20.23/00000000/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6

# Euclid 20.23 settings
export EUCLID_ROOT=${sparc_tpl_prefix_path}/${system_name}-${node_arch}/euclid-20.23/8b68b12f72b59648c9a0a962a6d55ea978199860/${system_name}-${node_arch}_intel-19.0.4_mpich-7.7.6

# Define and export atdm_run_script_on_compute_node
source $ATDM_SCRIPT_DIR/common/define_run_on_slurm_compute_node_func.sh

Expand Down