diff --git a/configuration/scripts/cice.batch.csh b/configuration/scripts/cice.batch.csh index c8c9ddc51..220313bfa 100755 --- a/configuration/scripts/cice.batch.csh +++ b/configuration/scripts/cice.batch.csh @@ -274,19 +274,6 @@ cat >> ${jobfile} << EOFB ##SBATCH --qos=standby EOFB -else if (${ICE_MACHINE} =~ discover*) then -cat >> ${jobfile} << EOFB -#SBATCH -J ${ICE_CASENAME} -#SBATCH -t ${ICE_RUNLENGTH} -#SBATCH -A ${acct} -#SBATCH -N ${nnodes} -#SBATCH -e slurm%j.err -#SBATCH -o slurm%j.out -###SBATCH --mail-type END,FAIL -###SBATCH --mail-user=eclare@lanl.gov -#SBATCH --qos=debug -EOFB - else if (${ICE_MACHINE} =~ fram*) then cat >> ${jobfile} << EOFB #SBATCH -J ${ICE_CASENAME} @@ -429,6 +416,34 @@ cat >> ${jobfile} << EOFB ##SBATCH --mail-user=xxx@noaa.gov EOFB +else if (${ICE_MACHINE} =~ ursa*) then +cat >> ${jobfile} << EOFB +#SBATCH -J ${ICE_CASENAME} +#SBATCH --partition=u1-compute +#SBATCH --qos=${queue} +#SBATCH -A ${acct} +#SBATCH --time=${batchtime} +#SBATCH --nodes=${nnodes} +#SBATCH --ntasks-per-node=${taskpernodelimit} +#SBATCH --cpus-per-task=${nthrds} +#SBATCH -e slurm%j.err +#SBATCH -o slurm%j.out +##SBATCH --mail-type FAIL +##SBATCH --mail-user=xxx@noaa.gov +EOFB + +else if (${ICE_MACHINE} =~ wcoss2*) then +cat >> ${jobfile} << EOFB +#PBS -N ${ICE_CASENAME} +#PBS -o ${ICE_CASENAME} +#PBS -j oe +#PBS -A ICE-DEV +#PBS -l walltime=${batchtime} +##PBS -l select=${nnodes}:ncpus=${taskpernodelimit} +##PBS -l select=${nnodes}:ncpus=${corespernode}:mpiprocs=${taskpernodelimit}:ompthreads=${nthrds} +#PBS -l place=vscatter,select=${nnodes}:ncpus=${corespernode}:mpiprocs=${corespernode}:mem=256M +EOFB + else if (${ICE_MACHINE} =~ orion*) then cat >> ${jobfile} << EOFB #SBATCH -J ${ICE_CASENAME} diff --git a/configuration/scripts/cice.launch.csh b/configuration/scripts/cice.launch.csh index a2c38e597..bc68a7ce1 100755 --- a/configuration/scripts/cice.launch.csh +++ b/configuration/scripts/cice.launch.csh @@ -279,7 +279,7 @@ srun -n ${ntasks} -c ${nthrds} ./cice >&! \$ICE_RUNLOG_FILE EOFR #======= -else if (${ICE_MACHCOMP} =~ hera*) then +else if (${ICE_MACHCOMP} =~ hera* || ${ICE_MACHCOMP} =~ ursa*) then cat >> ${jobfile} << EOFR srun -n ${ntasks} -c ${nthrds} ./cice >&! \$ICE_RUNLOG_FILE EOFR diff --git a/configuration/scripts/machines/Macros.ursa_intel b/configuration/scripts/machines/Macros.ursa_intel new file mode 100644 index 000000000..dbd920d08 --- /dev/null +++ b/configuration/scripts/machines/Macros.ursa_intel @@ -0,0 +1,59 @@ +#============================================================================== +# Makefile macros for NOAA ursa, intel compiler +#============================================================================== + +CPP := fpp +CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS} +CFLAGS := -c -O2 -fp-model precise -xHost + +FIXEDFLAGS := -132 +FREEFLAGS := -FR +FFLAGS := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback -align array64byte -xHost +FFLAGS_NOOPT:= -O0 + +ifeq ($(ICE_BLDDEBUG), true) + #FFLAGS += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created -link_mpi=dbg + # check uninit triggers link failure on ursa + FFLAGS += -O0 -g -check bounds -check pointers -fpe0 -check noarg_temp_created -link_mpi=dbg +else + #FFLAGS += -O2 +endif + +SCC := icx +SFC := ifx +MPICC := mpiicx +MPIFC := mpiifx + +ifeq ($(ICE_COMMDIR), mpi) + FC := $(MPIFC) + CC := $(MPICC) +else + FC := $(SFC) + CC := $(SCC) +endif +LD:= $(FC) + +#NETCDF_PATH := $(NETCDF) +NETCDF_PATH := $(NETCDF_FORTRAN_ROOT) + +PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs + +#PNETCDF_PATH := $(PNETCDF) + +INC_NETCDF := $(NETCDF_PATH)/include +LIB_NETCDF := $(NETCDF_PATH)/lib + +#LIB_PNETCDF := $(PNETCDF_PATH)/lib +#LIB_MPI := $(IMPILIBDIR) + +INCLDIR := $(INCLDIR) -I$(INC_NETCDF) +#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl +#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff +SLIBS := -L$(LIB_NETCDF) -lnetcdff + +ifeq ($(ICE_THREADED), true) + LDFLAGS += -qopenmp + CFLAGS += -qopenmp + FFLAGS += -qopenmp +endif + diff --git a/configuration/scripts/machines/env.ursa_intel b/configuration/scripts/machines/env.ursa_intel new file mode 100644 index 000000000..a4defc9e6 --- /dev/null +++ b/configuration/scripts/machines/env.ursa_intel @@ -0,0 +1,39 @@ +#!/bin/csh -f + +set inp = "undefined" +if ($#argv == 1) then + set inp = $1 +endif + +if ("$inp" != "-nomodules") then + +source /etc/profile.d/modules.csh +#module list +module purge +module load intel-oneapi-compilers/2025.1.1 +module load intel-oneapi-mpi/2021.15.0 +#module load intel-oneapi-mpi/2021.13.1 +#module load hpcx-mpi/2.18.1 +module load netcdf-c/4.9.2 +module load netcdf-fortran/4.6.1 +#module list + +endif + +# May be needed for OpenMP memory +setenv OMP_STACKSIZE 64M + +setenv ICE_MACHINE_MACHNAME ursa +setenv ICE_MACHINE_MACHINFO "AMD Genoa 9654, NDR-200-IB interconnect" +setenv ICE_MACHINE_ENVNAME intel +setenv ICE_MACHINE_ENVINFO "icx/ifx 2025.1.1.20250418, intel-oneapi-mpi-2021.15.0, netcdf-c 4.9.2, netcdf-fortran 4.6.1" +setenv ICE_MACHINE_MAKE gmake +setenv ICE_MACHINE_WKDIR $HOME/scratch/CICE_RUNS +setenv ICE_MACHINE_INPUTDATA /home/Anthony.Craig/scratch/CICE_INPUTDATA +setenv ICE_MACHINE_BASELINE $HOME/scratch/CICE_BASELINE +setenv ICE_MACHINE_SUBMIT "sbatch" +setenv ICE_MACHINE_TPNODE 192 +setenv ICE_MACHINE_ACCT marine-cpu +setenv ICE_MACHINE_QUEUE "batch" +setenv ICE_MACHINE_BLDTHRDS 1 +setenv ICE_MACHINE_QSTAT "squeue --jobs="