Skip to content

Commit

Permalink
Port to Intel LLVM on Jet (ufs-community#1011)
Browse files Browse the repository at this point in the history
Add build module for Intel LLVM.  LLVM is the default, but the 
option to build using Intel Classic is retained.

Fixes ufs-community#1009.
  • Loading branch information
GeorgeGayno-NOAA authored Dec 31, 2024
1 parent 3c088ae commit 21c51d7
Show file tree
Hide file tree
Showing 13 changed files with 98 additions and 15 deletions.
6 changes: 3 additions & 3 deletions driver_scripts/driver_grid.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@
#
#-----------------------------------------------------------------------

set -x

source ../sorc/machine-setup.sh > /dev/null 2>&1
module use ../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
set +x
module list
set -x

#-----------------------------------------------------------------------
# Set grid specs here.
Expand Down
2 changes: 1 addition & 1 deletion modulefiles/build.jet.intel.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
help([[
Load environment to compile UFS_UTILS on Jet using Intel
Load environment to compile UFS_UTILS on Jet using Intel Classic
]])

hpss_ver=os.getenv("hpss_ver") or ""
Expand Down
71 changes: 71 additions & 0 deletions modulefiles/build.jet.intelllvm.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
help([[
Load environment to compile UFS_UTILS on Jet using Intel LLVM
]])

hpss_ver=os.getenv("hpss_ver") or ""
load(pathJoin("hpss", hpss_ver))

prepend_path("MODULEPATH", "/contrib/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core")

stack_intel_ver=os.getenv("stack_intel_ver") or "2021.5.0"
load(pathJoin("stack-intel", stack_intel_ver))

stack_impi_ver=os.getenv("stack_impi_ver") or "2021.5.1"
load(pathJoin("stack-intel-oneapi-mpi", stack_impi_ver))

cmake_ver=os.getenv("cmake_ver") or "3.23.1"
load(pathJoin("cmake", cmake_ver))

bacio_ver=os.getenv("bacio_ver") or "2.4.1"
load(pathJoin("bacio", bacio_ver))

g2_ver=os.getenv("g2_ver") or "3.4.5"
load(pathJoin("g2", g2_ver))

ip_ver=os.getenv("ip_ver") or "4.3.0"
load(pathJoin("ip", ip_ver))

nemsio_ver=os.getenv("nemsio_ver") or "2.5.4"
load(pathJoin("nemsio", nemsio_ver))

sp_ver=os.getenv("sp_ver") or "2.5.0"
load(pathJoin("sp", sp_ver))

w3emc_ver=os.getenv("w3emc_ver") or "2.10.0"
load(pathJoin("w3emc", w3emc_ver))

-- Uncomment when CHGRES_ALL is ON.
--sfcio_ver=os.getenv("sfcio_ver") or "1.4.1"
--load(pathJoin("sfcio", sfcio_ver))

sigio_ver=os.getenv("sigio_ver") or "2.3.2"
load(pathJoin("sigio", sigio_ver))

zlib_ver=os.getenv("zlib_ver") or "1.2.13"
load(pathJoin("zlib", zlib_ver))

png_ver=os.getenv("png_ver") or "1.6.37"
load(pathJoin("libpng", png_ver))

netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2"
load(pathJoin("netcdf-c", netcdf_c_ver))

netcdf_fortran_ver=os.getenv("netcdf_fortran_ver") or "4.6.1"
load(pathJoin("netcdf-fortran", netcdf_fortran_ver))

nccmp_ver=os.getenv("nccmp_ver") or "1.9.0.1"
load(pathJoin("nccmp", nccmp_ver))

esmf_ver=os.getenv("esmf_ver") or "8.6.0"
load(pathJoin("esmf", esmf_ver))

nco_ver=os.getenv("nco_ver") or "5.0.6"
load(pathJoin("nco", nco_ver))

setenv("I_MPI_CC", "icx")
setenv("I_MPI_F90", "ifx")

setenv("CC", "mpiicc")
setenv("FC", "mpiifort")

whatis("Description: UFS_UTILS build environment")
4 changes: 3 additions & 1 deletion reg_tests/chgres_cube/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ set -x

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
set +x
module list
set -x

export OUTDIR="${WORK_DIR:-/lfs5/HFIP/emcda/$LOGNAME/stmp}"
export OUTDIR="${OUTDIR}/reg-tests/chgres-cube"
Expand Down
4 changes: 3 additions & 1 deletion reg_tests/cpld_gridgen/rt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ TESTS_FILE="$PATHRT/rt.conf"
export TEST_NAME=

# for C3072 on hera, use WLCLK=60 and MEM="--exclusive"
WLCLK_dflt=50
WLCLK_dflt=60
export WLCLK=$WLCLK_dflt
MEM_dflt="--mem=16g"
export MEM=$MEM_dflt
Expand Down Expand Up @@ -227,7 +227,9 @@ if [[ $target = wcoss2 ]]; then
module load netcdf
module load nccmp
fi
set +x
module list
set -x

if [[ $CREATE_BASELINE = true ]]; then
rm -rf $NEW_BASELINE_ROOT
Expand Down
4 changes: 3 additions & 1 deletion reg_tests/global_cycle/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ set -x

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
set +x
module list
set -x

export WORK_DIR="${WORK_DIR:-/lfs5/HFIP/emcda/$LOGNAME/stmp}"

Expand Down
2 changes: 1 addition & 1 deletion reg_tests/grid_gen/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
module list

set -x
Expand Down
2 changes: 1 addition & 1 deletion reg_tests/ice_blend/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ set -x

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
module load wgrib2/2.0.8
module load grib-util/1.3.0
set +x
Expand Down
2 changes: 2 additions & 0 deletions reg_tests/ocnice_prep/rt.sh
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,9 @@ if [[ $target = wcoss2 ]]; then
module load netcdf
module load nccmp/1.8.9.0
fi
set +x
module list
set -x

if [[ $CREATE_BASELINE = true ]]; then
rm -rf $NEW_BASELINE_ROOT
Expand Down
2 changes: 1 addition & 1 deletion reg_tests/snow2mdl/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ set -x

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.intel
module load build.$target.intelllvm
module load wgrib2/2.0.8
set +x
module list
Expand Down
6 changes: 3 additions & 3 deletions reg_tests/weight_gen/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@

set -x

compiler=${compiler:-"intel"}

source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.$compiler
module load build.$target.intelllvm
set +x
module list
set -x

export DATA="${WORK_DIR:-/lfs5/HFIP/emcda/$LOGNAME/stmp}"
export DATA="${DATA}/reg-tests/weight_gen"
Expand Down
4 changes: 3 additions & 1 deletion util/gdas_init/driver.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@

set -x

compiler=${compiler:-"intel"}
compiler=${compiler:-"intelllvm"}
source ../../sorc/machine-setup.sh > /dev/null 2>&1
module use ../../modulefiles
module load build.$target.$compiler
set +x
module list
set -x

PROJECT_CODE=hfv3gfs
QUEUE=batch
Expand Down
4 changes: 3 additions & 1 deletion util/weight_gen/run.jet.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ set -x
UFS_DIR=$PWD/../..
source $UFS_DIR/sorc/machine-setup.sh > /dev/null 2>&1
module use $UFS_DIR/modulefiles
module load build.$target.intel
module load build.$target.intelllvm
set +x
module list
set -x

export CRES="C48"

Expand Down

0 comments on commit 21c51d7

Please sign in to comment.