Skip to content

Commit

Permalink
Update Cheyenne and Derecho port (#456)
Browse files Browse the repository at this point in the history
* Update port to Cheyenne and Derecho

All results are bit-for-bit except some pgi tests.  All machine/compiler
combinations pass all tests.

Update cheyenne gnu, intel, pgi compiler version

Minor update to Derecho intel

Add Derecho cray, gnu, intelclassic, inteloneapi, nvhpc

* Add Derecho machine files
  • Loading branch information
apcraig authored Sep 7, 2023
1 parent 23b6c12 commit 3c8c084
Show file tree
Hide file tree
Showing 14 changed files with 519 additions and 19 deletions.
47 changes: 47 additions & 0 deletions configuration/scripts/machines/Macros.derecho_cray
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#==============================================================================
# Makefile macros for NCAR derecho, cray compiler
#==============================================================================

CPP := ftn -e P
CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 ${ICE_CPPDEFS}
CFLAGS := -c -O2

FIXEDFLAGS := -132
FREEFLAGS :=
FFLAGS := -hbyteswapio
FFLAGS_NOOPT:= -O0

ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -hfp0 -g -Rbcdps -Ktrap=fp
else
FFLAGS += -O2 -hfp0 # -eo
endif

SCC := cc
SFC := ftn
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

NETCDF_PATH := $(NETCDF)

#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

#PNETCDF_PATH := $(PNETCDF)
#PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib

INCLDIR := $(INCLDIR)

LIB_NETCDF := $(NETCDF)/lib
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
#LIB_MPI := $(IMPILIBDIR)

#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff

ifeq ($(ICE_THREADED), true)
LDFLAGS += -qopenmp
CFLAGS += -qopenmp
FFLAGS += -qopenmp
endif

47 changes: 47 additions & 0 deletions configuration/scripts/machines/Macros.derecho_gnu
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#==============================================================================
# Makefile macros for NCAR derecho, gnu compiler
#==============================================================================

CPP := ftn -E
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
CFLAGS := -c

FIXEDFLAGS := -ffixed-line-length-132
FREEFLAGS := -ffree-form
FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none -fallow-argument-mismatch
FFLAGS_NOOPT:= -O0

ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow --std f2008
# FFLAGS += -O0 -g -fcheck=all -finit-real=snan -fimplicit-none -ffpe-trap=invalid,zero,overflow
CFLAGS += -O0
endif

SCC := gcc
SFC := gfortran
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

NETCDF_PATH := $(NETCDF)

#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

#PNETCDF_PATH := $(PNETCDF)
#PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib

INCLDIR := $(INCLDIR)

LIB_NETCDF := $(NETCDF)/lib
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
#LIB_MPI := $(IMPILIBDIR)

#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff

ifeq ($(ICE_THREADED), true)
LDFLAGS += -qopenmp
CFLAGS += -qopenmp
FFLAGS += -qopenmp
endif

2 changes: 1 addition & 1 deletion configuration/scripts/machines/Macros.derecho_intel
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#==============================================================================
# Makefile macros for NCAR cheyenne, intel compiler
# Makefile macros for NCAR derecho, intel compiler
#==============================================================================

CPP := fpp
Expand Down
49 changes: 49 additions & 0 deletions configuration/scripts/machines/Macros.derecho_intelclassic
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#==============================================================================
# Makefile macros for NCAR derecho, intelclassic compiler
#==============================================================================

CPP := fpp
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
CFLAGS := -c -O2 -fp-model precise -march=core-avx2

FIXEDFLAGS := -fixed -132
FREEFLAGS := -free
FFLAGS := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback -march=core-avx2
FFLAGS_NOOPT:= -O0

ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created -link_mpi=dbg
# FFLAGS += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -link_mpi=dbg -stand f08
# FFLAGS += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -init=snan,arrays -link_mpi=dbg
else
FFLAGS += -O2
endif

SCC := icc
SFC := ifort
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

NETCDF_PATH := $(NETCDF)

#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

#PNETCDF_PATH := $(PNETCDF)
#PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib

INCLDIR := $(INCLDIR)

LIB_NETCDF := $(NETCDF)/lib
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
#LIB_MPI := $(IMPILIBDIR)

#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff

ifeq ($(ICE_THREADED), true)
LDFLAGS += -qopenmp
CFLAGS += -qopenmp
FFLAGS += -qopenmp
endif

49 changes: 49 additions & 0 deletions configuration/scripts/machines/Macros.derecho_inteloneapi
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#==============================================================================
# Makefile macros for NCAR derecho, inteloneapi compiler
#==============================================================================

CPP := fpp
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
CFLAGS := -c -O2 -fp-model precise -march=core-avx2

FIXEDFLAGS := -fixed -132
FREEFLAGS := -free
FFLAGS := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback -march=core-avx2
FFLAGS_NOOPT:= -O0

ifeq ($(ICE_BLDDEBUG), true)
FFLAGS += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created -link_mpi=dbg
# FFLAGS += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -link_mpi=dbg -stand f08
# FFLAGS += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -init=snan,arrays -link_mpi=dbg
else
FFLAGS += -O2
endif

SCC := icx
SFC := ifx
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

NETCDF_PATH := $(NETCDF)

#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

#PNETCDF_PATH := $(PNETCDF)
#PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib

INCLDIR := $(INCLDIR)

LIB_NETCDF := $(NETCDF)/lib
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
#LIB_MPI := $(IMPILIBDIR)

#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff

ifeq ($(ICE_THREADED), true)
LDFLAGS += -qopenmp
CFLAGS += -qopenmp
FFLAGS += -qopenmp
endif

53 changes: 53 additions & 0 deletions configuration/scripts/machines/Macros.derecho_nvhpc
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#==============================================================================
# Makefile macros for NCAR derecho, nvhpc compiler
#==============================================================================

CPP := nvc -Mcpp
CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 ${ICE_CPPDEFS}
CFLAGS := -c -Kieee

FIXEDFLAGS := -Mfixed
FREEFLAGS := -Mfree
FFLAGS := -Kieee -byteswapio -traceback
FFLAGS_NOOPT:= -O0

ifeq ($(ICE_BLDDEBUG), true)
# FFLAGS += -O0 -g -Ktrap=fp -Mbounds -Mchkptr
# FFLAGS += -O0 -g -Ktrap=fp -Mbounds
# FFLAGS += -O0 -Ktrap=fp -Mbounds -Mchkptr
FFLAGS += -O0 -Ktrap=fp
CFLAGS += -O0
else
# FFLAGS += -O2 -Mnofma -target=zen3
FFLAGS += -O2
CFLAGS += -O2
endif

SCC := nvc
SFC := nvfortran
CC := $(SCC)
FC := $(SFC)
LD := $(FC)

NETCDF_PATH := $(NETCDF)

#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs

#PNETCDF_PATH := $(PNETCDF)
#PNETCDF_PATH := /glade/u/apps/ch/opt/pio/2.2/mpt/2.15f/intel/17.0.1/lib

INCLDIR := $(INCLDIR)

LIB_NETCDF := $(NETCDF)/lib
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
#LIB_MPI := $(IMPILIBDIR)

#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf -lgptl
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff

ifeq ($(ICE_THREADED), true)
LDFLAGS += -qopenmp
CFLAGS += -qopenmp
FFLAGS += -qopenmp
endif

12 changes: 6 additions & 6 deletions configuration/scripts/machines/env.cheyenne_gnu
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ endif

if ("$inp" != "-nomodules") then

source /glade/u/apps/ch/opt/lmod/7.2.1/lmod/7.2.1/init/csh
source ${MODULESHOME}/init/csh

module purge
module load ncarenv/1.2
module load gnu/8.3.0
module load mpt/2.19
module load ncarenv/1.3
module load gnu/10.1.0
module load mpt/2.25
module load ncarcompilers/0.5.0
module load netcdf/4.6.3
module load netcdf/4.8.1

endif

setenv ICE_MACHINE_MACHNAME cheyenne
setenv ICE_MACHINE_MACHINFO "SGI ICE XA Xeon E5-2697V4 Broadwell"
setenv ICE_MACHINE_ENVNAME gnu
setenv ICE_MACHINE_ENVINFO "GNU Fortran (GCC) 8.3.0"
setenv ICE_MACHINE_ENVINFO "GNU Fortran (GCC) 10.1.0"
setenv ICE_MACHINE_MAKE gmake
setenv ICE_MACHINE_WKDIR /glade/scratch/$user/ICEPACK_RUNS
setenv ICE_MACHINE_INPUTDATA /glade/p/cesm/pcwg_dev
Expand Down
12 changes: 6 additions & 6 deletions configuration/scripts/machines/env.cheyenne_intel
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ endif

if ("$inp" != "-nomodules") then

source /glade/u/apps/ch/opt/lmod/7.2.1/lmod/7.2.1/init/csh
source ${MODULESHOME}/init/csh

module purge
module load ncarenv/1.2
module load intel/19.0.2
module load mpt/2.19
module load ncarenv/1.3
module load intel/19.1.1
module load mpt/2.25
module load ncarcompilers/0.5.0
module load netcdf/4.6.3
module load netcdf/4.8.1

endif

setenv ICE_MACHINE_MACHNAME cheyenne
setenv ICE_MACHINE_MACHINFO "SGI ICE XA Xeon E5-2697V4 Broadwell"
setenv ICE_MACHINE_ENVNAME intel
setenv ICE_MACHINE_ENVINFO "ifort 19.0.2.187 20190117"
setenv ICE_MACHINE_ENVINFO "ifort 19.1.1.217 20200306"
setenv ICE_MACHINE_MAKE gmake
setenv ICE_MACHINE_WKDIR /glade/scratch/$user/ICEPACK_RUNS
setenv ICE_MACHINE_INPUTDATA /glade/p/cesm/pcwg_dev
Expand Down
12 changes: 6 additions & 6 deletions configuration/scripts/machines/env.cheyenne_pgi
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ endif

if ("$inp" != "-nomodules") then

source /glade/u/apps/ch/opt/lmod/7.2.1/lmod/7.2.1/init/csh
source ${MODULESHOME}/init/csh

module purge
module load ncarenv/1.2
module load pgi/19.9
module load mpt/2.21
module load ncarenv/1.3
module load pgi/20.4
module load mpt/2.22
module load ncarcompilers/0.5.0
module load netcdf/4.7.3
module load netcdf/4.7.4

endif

setenv ICE_MACHINE_MACHNAME cheyenne
setenv ICE_MACHINE_MACHINFO "SGI ICE XA Xeon E5-2697V4 Broadwell"
setenv ICE_MACHINE_ENVNAME pgi
setenv ICE_MACHINE_ENVINFO "pgf90 19.9-0"
setenv ICE_MACHINE_ENVINFO "pgf90 20.4-0"
setenv ICE_MACHINE_MAKE gmake
setenv ICE_MACHINE_WKDIR /glade/scratch/$user/ICEPACK_RUNS
setenv ICE_MACHINE_INPUTDATA /glade/p/cesm/pcwg_dev
Expand Down
51 changes: 51 additions & 0 deletions configuration/scripts/machines/env.derecho_cray
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#!/bin/csh -f

set inp = "undefined"
if ($#argv == 1) then
set inp = $1
endif

if ("$inp" != "-nomodules") then

source ${MODULESHOME}/init/csh

module --force purge
module load ncarenv/23.06
module load craype
module load cce/15.0.1
module load ncarcompilers
#module load cray-mpich/8.1.25
#module load hdf5/1.12.2
module load netcdf/4.9.2
module load cray-libsci/23.02.1.1

# For perftools with mpiexec
# module load perftools-base
# module load perftools
#setenv PALS_TRANSFER FALSE

endif

limit coredumpsize unlimited
limit stacksize unlimited
setenv PALS_QUIET TRUE

# May be needed for OpenMP memory
setenv OMP_STACKSIZE 64M
# OMP runtime diagnostics
#setenv OMP_DISPLAY_ENV TRUE

setenv ICE_MACHINE_MACHNAME derecho
setenv ICE_MACHINE_MACHINFO "HPE Cray EX Milan Slingshot 11"
setenv ICE_MACHINE_ENVNAME cray
setenv ICE_MACHINE_ENVINFO "cce 15.0.1, netcdf4.9.2"
setenv ICE_MACHINE_MAKE gmake
setenv ICE_MACHINE_WKDIR /glade/derecho/scratch/$user/ICEPACK_RUNS
setenv ICE_MACHINE_INPUTDATA /glade/p/cesm/pcwg_dev
setenv ICE_MACHINE_BASELINE /glade/derecho/scratch/$user/ICEPACK_BASELINE
setenv ICE_MACHINE_SUBMIT "qsub"
setenv ICE_MACHINE_ACCT P00000000
setenv ICE_MACHINE_QUEUE "main"
setenv ICE_MACHINE_TPNODE 128
setenv ICE_MACHINE_BLDTHRDS 1
setenv ICE_MACHINE_QSTAT "qstat "
Loading

0 comments on commit 3c8c084

Please sign in to comment.