diff --git a/CHANGELOG.md b/CHANGELOG.md index 6751d0c..aae63c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed ### Added +## [5.17.0] - 2026-01-02 + +### Changed + +- Update to Baselibs 8.24.0 + - ESMF v9.0.0b08 + - GFE v1.22.0 + - pFUnit v4.15.0 + - curl 8.17.0 + - NCO 5.3.6 + - CDO 2.5.4 + - Various updates for Athena/Turin/TOSS5 at NAS +- Support for Athena/Turin/TOSS5 at NAS + - Update `build.csh` to support Athena/Turin/TOSS5 at NAS + - Also remove Haswell + ## [5.16.0] - 2025-10-21 ### Changed diff --git a/build.csh b/build.csh index 79bcebb..8b82390 100755 --- a/build.csh +++ b/build.csh @@ -53,8 +53,10 @@ if ( ($node == dirac) \ else if (($node =~ pfe*) \ || ($node =~ afe*) \ + || ($node =~ athfe*) \ || ($node =~ r[0-9]*i[0-9]*n[0-9]*) \ - || ($node =~ r[0-9]*c[0-9]*t[0-9]*n[0-9]*)) then + || ($node =~ r[0-9]*c[0-9]*t[0-9]*n[0-9]*) \ + | ($node =~ x[0-9]*c[0-9]*s[0-9]*b[0-9]*n[0-9]*) ) then setenv SITE NAS else @@ -133,12 +135,12 @@ while ($#argv) # specify node type #------------------ + if ("$1" == "-tur") set nodeTYPE = "Turin" if ("$1" == "-mil") set nodeTYPE = "Milan" if ("$1" == "-rom") set nodeTYPE = "Rome" if ("$1" == "-cas") set nodeTYPE = "CascadeLake" if ("$1" == "-sky") set nodeTYPE = "Skylake" if ("$1" == "-bro") set nodeTYPE = "Broadwell" - if ("$1" == "-has") set nodeTYPE = "Haswell" if ("$1" == "-any") set nodeTYPE = "Any node" # reset Fortran TMPDIR @@ -338,29 +340,37 @@ endif if ( $SITE == NAS ) then set nT = `echo $nodeTYPE | cut -c1-3 | tr "[A-Z]" "[a-z]"` - if (($nT != has) && ($nT != bro) && ($nT != sky) && ($nT != cas) && ($nT != rom) && ($nT != mil)) then + if (($nT != bro) && ($nT != sky) && ($nT != cas) && ($nT != rom) && ($nT != mil) && ($nT != tur)) then echo "ERROR. Unknown node type at NAS: $nodeTYPE" exit 2 endif - # At NAS, you cannot submit to Milan nodes from pfe nodes - if ( ($nT == mil) && ($node =~ pfe*) ) then - echo "ERROR. Milan nodes cannot be accessed from pfe nodes. Please use afe nodes." + # At NAS, you must submit to Milan nodes from afe nodes + if ( ($nT == mil) && ($node !~ afe*) ) then + echo "ERROR. Milan nodes can only be accessed from afe nodes." exit 2 endif + # At NAS, you must submit to Turin nodes from athfe nodes + if ( ($nT == tur) && ($node !~ athfe*) ) then + echo "ERROR. Turin nodes can only be accessed from athfe nodes." + exit 2 + endif + + if ($nT == tur) set nT = 'tur_ath' if ($nT == mil) set nT = 'mil_ait' if ($nT == rom) set nT = 'rom_ait' - if ($nT == sky) set nT = 'sky_ele' if ($nT == cas) set nT = 'cas_ait' + if ($nT == sky) set nT = 'sky_ele' + if ($nT == bro) set nT = 'bro_ele' set proc = ":model=$nT" - if ($nT == has) @ NCPUS_DFLT = 24 - if ($nT == bro) @ NCPUS_DFLT = 28 + if ($nT == bro_ele) @ NCPUS_DFLT = 28 if ($nT == sky_ele) @ NCPUS_DFLT = 40 if ($nT == cas_ait) @ NCPUS_DFLT = 40 if ($nT == rom_ait) @ NCPUS_DFLT = 128 if ($nT == mil_ait) @ NCPUS_DFLT = 128 + if ($nT == tur_ath) @ NCPUS_DFLT = 256 # TMPDIR needs to be reset #------------------------- @@ -932,12 +942,12 @@ flagged options -account account send batch job to account -walltime hh:mm:ss time to use as batch walltime at job submittal + -tur compile on Turin nodes (only at NAS, must be submitted from athfe nodes) -mil compile on Milan nodes (default at NCCS; at NAS must be submitted from afe nodes) -rom compile on Rome nodes (default at NAS, only at NAS) -cas compile on Cascade Lake nodes -sky compile on Skylake nodes (only at NAS) -bro compile on Broadwell nodes (only at NAS) - -has compile on Haswell nodes (only at NAS) -any compile on any node (only at NCCS) extra cmake options diff --git a/g5_modules b/g5_modules index c9c5fb9..9cb5563 100755 --- a/g5_modules +++ b/g5_modules @@ -74,13 +74,21 @@ if (($node =~ discover*) || ($node =~ borg*) || \ set site = "NCCS" -else if (($node =~ pfe*) || ($node =~ afe*) || \ +else if (($node =~ pfe*) || ($node =~ afe*) || ($node =~ athfe*) || \ ($node =~ r[0-9]*i[0-9]*n[0-9]*) || \ - ($node =~ r[0-9]*c[0-9]*t[0-9]*n[0-9]*)) then + ($node =~ r[0-9]*c[0-9]*t[0-9]*n[0-9]*) || \ + ($node =~ x[0-9]*c[0-9]*s[0-9]*b[0-9]*n[0-9]*) ) then # We are on NAS... set site = "NAS" + set OS_VERSION_ID=`grep VERSION_ID /etc/os-release | cut -d= -f2 | cut -d. -f1 | sed 's/"//g'` + if ( "$OS_VERSION_ID" == "8" ) then + set TOSS_VERSION = "TOSS4" + else if ( "$OS_VERSION_ID" == "9" ) then + set TOSS_VERSION = "TOSS5" + endif + else if ( -d /ford1/share/gmao_SIteam/ && -d /ford1/local/ && $arch == Linux ) then set site = "GMAO.desktop" @@ -114,6 +122,7 @@ X86_64: set modinit = DUMMY set usemodules = 0 +set switchmodules = 0 set useldlibs = 0 #========# @@ -121,9 +130,9 @@ set useldlibs = 0 #========# if ( $site == NCCS ) then - set basedir = /discover/swdev/gmao_SIteam/Baselibs/ESMA-Baselibs-8.20.0/x86_64-pc-linux-gnu/ifort_2021.13.0-intelmpi_2021.13.0 + set basedir = /discover/swdev/gmao_SIteam/Baselibs/ESMA-Baselibs-8.24.0/x86_64-pc-linux-gnu/ifort_2021.13.0-intelmpi_2021.13.0 - set mod1 = python/GEOSpyD/24.11.3-0/3.12 + set mod1 = python/GEOSpyD/25.3.1-0/3.13 set mod2 = GEOSenv set mod3 = comp/gcc/12.3.0 @@ -145,23 +154,49 @@ if ( $site == NCCS ) then #=======# else if ( $site == NAS ) then - set basedir = /nobackup/gmao_SIteam/Baselibs/ESMA-Baselibs-8.20.0/x86_64-pc-linux-gnu/ifort_2021.13.0-mpt_2.30 + if ( $TOSS_VERSION == "TOSS4" ) then - set mod1 = python/GEOSpyD/24.11.3-0/3.12 - set mod2 = GEOSenv + set basedir = /nobackup/gmao_SIteam/Baselibs/ESMA-Baselibs-8.24.0/x86_64-pc-linux-gnu/ifort_2021.13.0-mpt_2.30 - set mod3 = comp-gcc/12.3.0-TOSS4 - set mod4 = comp-intel/2024.2.0-ifort - set mod5 = mpi-hpe/mpt + set mod1 = python/GEOSpyD/25.3.1-0/3.13 + set mod2 = GEOSenv - set mods = ( $mod1 $mod2 $mod3 $mod4 $mod5 ) - set modinit = /usr/share/modules/init/tcsh + set mod3 = comp-gcc/12.3.0-TOSS4 + set mod4 = comp-intel/2024.2.0-ifort + set mod5 = mpi-hpe/mpt - set usemod1 = /u/scicon/tools/modulefiles - set usemod2 = /nobackup/gmao_SIteam/modulefiles - set usemod3 = /nasa/modulefiles/testing - set usemods = ( $usemod1 $usemod2 $usemod3 ) - set usemodules = 1 + set mods = ( $mod1 $mod2 $mod3 $mod4 $mod5 ) + set modinit = /usr/share/modules/init/tcsh + + set usemod1 = /u/scicon/tools/modulefiles + set usemod2 = /nobackup/gmao_SIteam/modulefiles + set usemod3 = /nasa/modulefiles/testing + set usemods = ( $usemod1 $usemod2 $usemod3 ) + set usemodules = 1 + + else + + set basedir = /nobackup/gmao_SIteam/Baselibs/ESMA-Baselibs-8.24.0/x86_64-pc-linux-gnu/ifort_2021.13.0-craympich_8.1.33 + + set mod1 = python/GEOSpyD/25.3.1-0/3.13 + set mod2 = GEOSenv + + set mod3 = comp-gcc/12.5.0 + set mod4 = PrgEnv-intel/8.6.0 + set mod5 = comp-intel/2024.2.0 + set mod6 = mpi/mpich-ifort + + set mods = ( $mod1 $mod2 $mod3 $mod4 $mod5 $mod6 ) + set modinit = /opt/cray/pe/modules/3.2.11.7/init/csh + + set switchmods = ( intel/2023.2.1:intel/2024.2.0 ) + set switchmodules = 1 + + set usemod1 = /nobackup/gmao_SIteam/modulefiles-TOSS5 + set usemods = ( $usemod1 ) + set usemodules = 1 + + endif set useldlibs = 0 @@ -170,9 +205,9 @@ else if ( $site == NAS ) then #=================# else if ( $site == GMAO.desktop ) then - set basedir = /ford1/share/gmao_SIteam/Baselibs/ESMA-Baselibs-8.20.0/x86_64-pc-linux-gnu/ifort_2021.13.0-intelmpi_2021.13 + set basedir = /ford1/share/gmao_SIteam/Baselibs/ESMA-Baselibs-8.24.0/x86_64-pc-linux-gnu/ifort_2021.13.0-intelmpi_2021.13 - set mod1 = other/python/GEOSpyD/24.11.3-0/3.12 + set mod1 = other/python/GEOSpyD/25.3.1-0/3.13 set mod2 = GEOSenv set mod3 = comp/gcc/12.1.0 @@ -234,6 +269,9 @@ if ( $#argv > 0 ) then else if ( $1 == usemodules ) then echo $usemods + else if ( $1 == switchmodules ) then + echo $switchmods + else if ( $1 == useldlibs ) then echo $useldlibs @@ -334,6 +372,14 @@ if (-e $modinit) then module load $mod end + if ($switchmodules) then + foreach switchmod ( $switchmods ) + set frommodule = `echo $switchmod | cut -d: -f1` + set tomodule = `echo $switchmod | cut -d: -f2` + module switch $frommodule $tomodule + end + endif + if ($?XTRAMODS2LOAD) then set xmods = (`echo $XTRAMODS2LOAD | cut -d: -f1- --output-delimiter=" "`) foreach mod ( $xmods )