From 5b737b16e4e247950c515242b3d0f712aee47edd Mon Sep 17 00:00:00 2001 From: Benjamin Moore Wagman Date: Thu, 14 Nov 2024 11:35:14 -0700 Subject: [PATCH] Merge pull request #1 from wagmanbe/jimsmods Jimsmods --- .../machines/cmake_macros/intel_boca.cmake | 24 +++ .../machines/cmake_macros/intel_flight.cmake | 24 +++ cime_config/machines/config_batch.xml | 20 +++ cime_config/machines/config_machines.xml | 160 ++++++++++++++++++ .../eamxx/cmake/machine-files/flight.cmake | 15 ++ 5 files changed, 243 insertions(+) create mode 100644 cime_config/machines/cmake_macros/intel_boca.cmake create mode 100644 cime_config/machines/cmake_macros/intel_flight.cmake create mode 100644 components/eamxx/cmake/machine-files/flight.cmake diff --git a/cime_config/machines/cmake_macros/intel_boca.cmake b/cime_config/machines/cmake_macros/intel_boca.cmake new file mode 100644 index 000000000000..b058430302c3 --- /dev/null +++ b/cime_config/machines/cmake_macros/intel_boca.cmake @@ -0,0 +1,24 @@ +set(ALBANY_PATH "/projects/ccsm/AlbanyTrilinos_20190904/albany-build/install") +set(CLDERA_PATH "/projects/cldera/cldera-tools/install-master/intel/") +if (COMP_NAME STREQUAL gptl) + string(APPEND CPPDEFS " -DHAVE_SLASHPROC") +endif() +set(ESMF_LIBDIR "/projects/ccsm/esmf-6.3.0rp1/lib/libO/Linux.intel.64.openmpi.default") +if (MPILIB STREQUAL openmpi) + set(MPI_PATH "$ENV{MPIHOME}") +endif() +set(NETCDF_PATH "$ENV{NETCDFROOT}") +if (MPILIB STREQUAL mpi-serial AND NOT compile_threaded) + set(PFUNIT_PATH "/projects/ccsm/pfunit/3.2.9/mpi-serial") +endif() +set(PIO_FILESYSTEM_HINTS "lustre") +set(PNETCDF_PATH "$ENV{PNETCDFROOT}") +execute_process(COMMAND ${NETCDF_PATH}/bin/nf-config --flibs OUTPUT_VARIABLE SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0 OUTPUT_STRIP_TRAILING_WHITESPACE) +string(APPEND SLIBS " ${SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0} -L/projects/ccsm/BLAS-intel -lblas_LINUX -L$ENV{MKL_LIBS} -lmkl_rt") +if (MPILIB STREQUAL openmpi) + string(APPEND SLIBS " -mkl=cluster") +endif() +if (MPILIB STREQUAL mpi-serial) + string(APPEND SLIBS " -mkl") +endif() +string(APPEND FFLAGS " -fpe3") diff --git a/cime_config/machines/cmake_macros/intel_flight.cmake b/cime_config/machines/cmake_macros/intel_flight.cmake new file mode 100644 index 000000000000..b058430302c3 --- /dev/null +++ b/cime_config/machines/cmake_macros/intel_flight.cmake @@ -0,0 +1,24 @@ +set(ALBANY_PATH "/projects/ccsm/AlbanyTrilinos_20190904/albany-build/install") +set(CLDERA_PATH "/projects/cldera/cldera-tools/install-master/intel/") +if (COMP_NAME STREQUAL gptl) + string(APPEND CPPDEFS " -DHAVE_SLASHPROC") +endif() +set(ESMF_LIBDIR "/projects/ccsm/esmf-6.3.0rp1/lib/libO/Linux.intel.64.openmpi.default") +if (MPILIB STREQUAL openmpi) + set(MPI_PATH "$ENV{MPIHOME}") +endif() +set(NETCDF_PATH "$ENV{NETCDFROOT}") +if (MPILIB STREQUAL mpi-serial AND NOT compile_threaded) + set(PFUNIT_PATH "/projects/ccsm/pfunit/3.2.9/mpi-serial") +endif() +set(PIO_FILESYSTEM_HINTS "lustre") +set(PNETCDF_PATH "$ENV{PNETCDFROOT}") +execute_process(COMMAND ${NETCDF_PATH}/bin/nf-config --flibs OUTPUT_VARIABLE SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0 OUTPUT_STRIP_TRAILING_WHITESPACE) +string(APPEND SLIBS " ${SHELL_CMD_OUTPUT_BUILD_INTERNAL_IGNORE0} -L/projects/ccsm/BLAS-intel -lblas_LINUX -L$ENV{MKL_LIBS} -lmkl_rt") +if (MPILIB STREQUAL openmpi) + string(APPEND SLIBS " -mkl=cluster") +endif() +if (MPILIB STREQUAL mpi-serial) + string(APPEND SLIBS " -mkl") +endif() +string(APPEND FFLAGS " -fpe3") diff --git a/cime_config/machines/config_batch.xml b/cime_config/machines/config_batch.xml index 923e497367f7..d93e8b775087 100644 --- a/cime_config/machines/config_batch.xml +++ b/cime_config/machines/config_batch.xml @@ -620,6 +620,26 @@ + + + + + + batch + batch + + + + + + + + + batch + batch + + + short,batch diff --git a/cime_config/machines/config_machines.xml b/cime_config/machines/config_machines.xml index 9142a5fb24ee..50698f7f664e 100644 --- a/cime_config/machines/config_machines.xml +++ b/cime_config/machines/config_machines.xml @@ -2121,6 +2121,166 @@ commented out until "*** No rule to make target '.../libadios2pio-nm-lib.a'" iss + + SNL clust + (boca) + LINUX + proxy.sandia.gov:80 + intel + openmpi + fy220022 + /projects/ccsm/timings + .* + /gpfs/$USER/acme_scratch/boca + /projects/ccsm/inputdata + /projects/ccsm/inputdata/atm/datm7 + $CIME_OUTPUT_ROOT/archive/$CASE + /projects/ccsm/ccsm_baselines/$COMPILER + /projects/ccsm/cprnc/build.toss3/cprnc + 32 + e3sm_integration + slurm + jgfouca at sandia dot gov + 36 + 36 + TRUE + + mpiexec + + --n {{ total_tasks }} + --map-by ppr:{{ tasks_per_numa }}:socket:PE=$ENV{OMP_NUM_THREADS} --bind-to core + + + + + + + /usr/share/lmod/lmod/init/python.py + /usr/share/lmod/lmod/init/perl.pm + /usr/share/lmod/lmod/init/sh + /usr/share/lmod/lmod/init/csh + /usr/share/lmod/lmod/libexec/lmod python + /usr/share/lmod/lmod/libexec/lmod perl + module + module + + + sems-archive-env + acme-env + sems-archive-git + sems-archive-cmake/3.19.1 + gnu/10.2 + sems-archive-intel/21.3.0 + + + sems-archive-openmpi/4.1.4 + acme-netcdf/4.7.4/acme + + + sems-archive-netcdf/4.4.1/exo + + + /nscratch/$USER/acme_scratch/boca/$CASE/run + $CIME_OUTPUT_ROOT/$CASE/bld + + + 0.1 + + + $ENV{SEMS_NETCDF_ROOT} + $ENV{SEMS_NETCDF_ROOT}/include + $ENV{SEMS_NETCDF_ROOT}/lib + 64M + + + $ENV{SEMS_NETCDF_ROOT} + + + /projects/cldera/cldera-tools/install-master/intel + + + + + + SNL clust + (flight) + LINUX + proxy.sandia.gov:80 + intel + openmpi + fy220022 + /projects/ccsm/timings + .* + /gpfs/$USER/acme_scratch/flight + /projects/ccsm/inputdata + /projects/ccsm/inputdata/atm/datm7 + $CIME_OUTPUT_ROOT/archive/$CASE + /projects/ccsm/ccsm_baselines/$COMPILER + /projects/ccsm/cprnc/build.toss3/cprnc + 56 + e3sm_integration + slurm + jgfouca at sandia dot gov + 112 + 112 + TRUE + + mpiexec + + --n {{ total_tasks }} + --map-by ppr:{{ tasks_per_numa }}:socket:PE=$ENV{OMP_NUM_THREADS} --bind-to core + + + + + + + /usr/share/lmod/lmod/init/python.py + /usr/share/lmod/lmod/init/perl.pm + /usr/share/lmod/lmod/init/sh + /usr/share/lmod/lmod/init/csh + /usr/share/lmod/lmod/libexec/lmod python + /usr/share/lmod/lmod/libexec/lmod perl + module + module + + + /projects/sems/acme-boca-modulefiles/env-module/ + acme-boca-env + sems-archive-git + sems-archive-cmake/3.19.1 + gnu/10.3.1 + sems-archive-intel/21.3.0 + + + sems-archive-openmpi/4.1.4 + acme-netcdf/4.7.4/acme + + + sems-archive-netcdf/4.4.1/exo + + + /nscratch/$USER/acme_scratch/flight/$CASE/run + $CIME_OUTPUT_ROOT/$CASE/bld + + + 0.1 + + + $ENV{SEMS_NETCDF_ROOT} + $ENV{SEMS_NETCDF_ROOT}/include + $ENV{SEMS_NETCDF_ROOT}/lib + 64M + + + $ENV{SEMS_NETCDF_ROOT} + + + /projects/cldera/cldera-tools/install-master/intel + + + + SNL clust ghost-login diff --git a/components/eamxx/cmake/machine-files/flight.cmake b/components/eamxx/cmake/machine-files/flight.cmake new file mode 100644 index 000000000000..8b587c1feed8 --- /dev/null +++ b/components/eamxx/cmake/machine-files/flight.cmake @@ -0,0 +1,15 @@ +include(${CMAKE_CURRENT_LIST_DIR}/common.cmake) +common_setup() + +set(EKAT_MACH_FILES_PATH ${CMAKE_CURRENT_LIST_DIR}/../../../../externals/ekat/cmake/machine-files) + +# Get AMD arch settings +include(${EKAT_MACH_FILES_PATH}/kokkos/intel-skx.cmake) + +# Add OpenMP settings in standalone mode OR e3sm with compile_threaded=ON +if (NOT "${PROJECT_NAME}" STREQUAL "E3SM" OR compile_threaded) + include(${EKAT_MACH_FILES_PATH}/kokkos/openmp.cmake) +endif() + +# Use srun for standalone testing +include(${EKAT_MACH_FILES_PATH}/mpi/srun.cmake)