Skip to content

Commit 6ce3fa3

Browse files
authored
Port to blueback (CICE-Consortium#1019)
Port to blueback, new Cray EX4000 on intel, gnu, cray, nvhpc, aocc compilers.
1 parent 2986b9f commit 6ce3fa3

File tree

12 files changed

+636
-3
lines changed

12 files changed

+636
-3
lines changed

configuration/scripts/cice.batch.csh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,23 @@ cat >> ${jobfile} << EOFB
137137
###PBS -m be
138138
EOFB
139139

140+
else if (${ICE_MACHINE} =~ blueback*) then
141+
if (${runlength} > 0) set queue = "standard"
142+
cat >> ${jobfile} << EOFB
143+
#SBATCH --job-name=${ICE_CASENAME}
144+
#SBATCH --account=${acct}
145+
#SBATCH --qos=${queue}
146+
#SBATCH --time=${batchtime}
147+
#SBATCH --nodes=${nnodes}
148+
#SBATCH --ntasks=${ntasks}
149+
#SBATCH --ntasks-per-node=${taskpernode}
150+
#SBATCH --constraint standard
151+
###SBATCH -e filename
152+
###SBATCH -o filename
153+
###SBATCH --mail-type FAIL
154+
###SBATCH --mail-user [email protected]
155+
EOFB
156+
140157
else if (${ICE_MACHINE} =~ narwhal*) then
141158
if (${runlength} <= 0) then
142159
set batchtime = "00:29:59"

configuration/scripts/cice.launch.csh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,15 +127,15 @@ endif
127127
endif
128128

129129
#=======
130-
else if (${ICE_MACHCOMP} =~ cori* || ${ICE_MACHCOMP} =~ perlmutter*) then
130+
else if (${ICE_MACHCOMP} =~ cori* || ${ICE_MACHCOMP} =~ perlmutter* || ${ICE_MACHCOMP} =~ blueback*) then
131131
if (${ICE_COMMDIR} =~ serial*) then
132132
cat >> ${jobfile} << EOFR
133133
#./cice >&! \$ICE_RUNLOG_FILE
134-
srun --cpu-bind=cores ./cice >&! \$ICE_RUNLOG_FILE
134+
srun --cpu-bind=cores --kill-on-bad-exit ./cice >&! \$ICE_RUNLOG_FILE
135135
EOFR
136136
else
137137
cat >> ${jobfile} << EOFR
138-
srun --cpu-bind=cores ./cice >&! \$ICE_RUNLOG_FILE
138+
srun --cpu-bind=cores -n ${ntasks} -c ${nthrds} --kill-on-bad-exit ./cice >&! \$ICE_RUNLOG_FILE
139139
EOFR
140140
endif
141141

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#==============================================================================
2+
# Macros file for NavyDSRC blueback, aocc compiler
3+
#==============================================================================
4+
5+
CPP := ftn -E
6+
CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 ${ICE_CPPDEFS}
7+
CFLAGS := -c -O2
8+
9+
FIXEDFLAGS := -ffixed-form
10+
FREEFLAGS := -ffree-form
11+
FFLAGS := -byteswapio
12+
FFLAGS_NOOPT:= -O0
13+
14+
ifeq ($(ICE_BLDDEBUG), true)
15+
FFLAGS += -O0 -g -fsanitize=integer-divide-by-zero,float-divide-by-zero,bounds
16+
else
17+
FFLAGS += -O2
18+
endif
19+
20+
SCC := cc
21+
SFC := ftn
22+
MPICC := cc
23+
MPIFC := ftn
24+
25+
ifeq ($(ICE_COMMDIR), mpi)
26+
FC := $(MPIFC)
27+
CC := $(MPICC)
28+
else
29+
FC := $(SFC)
30+
CC := $(SCC)
31+
endif
32+
LD:= $(FC)
33+
34+
# defined by module
35+
#NETCDF_PATH := $(NETCDF)
36+
#PNETCDF_PATH := $(PNETCDF)
37+
#PNETCDF_PATH := /glade/apps/opt/pnetcdf/1.3.0/intel/default
38+
#LAPACK_LIBDIR := /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
39+
40+
#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs
41+
42+
INCLDIR := $(INCLDIR)
43+
#INCLDIR += -I$(NETCDF_PATH)/include
44+
45+
#LIB_NETCDF := $(NETCDF_PATH)/lib
46+
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
47+
#LIB_MPI := $(IMPILIBDIR)
48+
#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
49+
50+
ifeq ($(ICE_THREADED), true)
51+
LDFLAGS += -mp
52+
# CFLAGS += -mp
53+
FFLAGS += -mp
54+
else
55+
LDFLAGS += -nomp
56+
# CFLAGS += -nomp
57+
FFLAGS += -nomp
58+
endif
59+
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#==============================================================================
2+
# Macros file for NavyDSRC blueback, cray compiler
3+
#==============================================================================
4+
5+
CPP := ftn -e P
6+
CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 ${ICE_CPPDEFS}
7+
CFLAGS := -c -O2
8+
9+
FIXEDFLAGS := -132
10+
FREEFLAGS :=
11+
FFLAGS := -hbyteswapio
12+
FFLAGS_NOOPT:= -O0
13+
LDFLAGS := -hbyteswapio
14+
15+
ifeq ($(ICE_BLDDEBUG), true)
16+
FFLAGS += -O0 -hfp0 -g -Rbcdps -Ktrap=fp
17+
else
18+
# FFLAGS += -O2 -hfp0 # -eo
19+
FFLAGS += -O1 -hfp0 # -eo
20+
endif
21+
22+
SCC := cc
23+
SFC := ftn
24+
MPICC := cc
25+
MPIFC := ftn
26+
27+
ifeq ($(ICE_COMMDIR), mpi)
28+
FC := $(MPIFC)
29+
CC := $(MPICC)
30+
else
31+
FC := $(SFC)
32+
CC := $(SCC)
33+
endif
34+
LD:= $(FC)
35+
36+
# defined by module
37+
#NETCDF_PATH := $(NETCDF)
38+
#PNETCDF_PATH := $(PNETCDF)
39+
#PNETCDF_PATH := /glade/apps/opt/pnetcdf/1.3.0/intel/default
40+
#LAPACK_LIBDIR := /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
41+
42+
#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs
43+
44+
INCLDIR := $(INCLDIR)
45+
#INCLDIR += -I$(NETCDF_PATH)/include
46+
47+
#LIB_NETCDF := $(NETCDF_PATH)/lib
48+
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
49+
#LIB_MPI := $(IMPILIBDIR)
50+
#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
51+
52+
ifeq ($(ICE_THREADED), true)
53+
LDFLAGS += -fopenmp
54+
CFLAGS += -fopenmp
55+
FFLAGS += -fopenmp
56+
else
57+
LDFLAGS += -hnoomp
58+
# CFLAGS += -hnoomp
59+
FFLAGS += -hnoomp
60+
endif
61+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#==============================================================================
2+
# Macros file for NavyDSRC blueback, gnu compiler
3+
#==============================================================================
4+
5+
CPP := ftn -E
6+
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
7+
CFLAGS := -c
8+
9+
FIXEDFLAGS := -ffixed-line-length-132
10+
FREEFLAGS := -ffree-form
11+
FFLAGS := -fconvert=big-endian -fbacktrace -ffree-line-length-none -fallow-argument-mismatch
12+
FFLAGS_NOOPT:= -O0
13+
14+
ifeq ($(ICE_BLDDEBUG), true)
15+
# ffpe-trap=invalid produces an abort in hdf5 ~v1.14 which is fixed in 1.14.4.2
16+
FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=zero,overflow
17+
# FFLAGS += -O0 -g -fcheck=bounds -finit-real=nan -fimplicit-none -ffpe-trap=invalid,zero,overflow
18+
CFLAGS += -O0
19+
endif
20+
21+
ifeq ($(ICE_COVERAGE), true)
22+
FFLAGS += -O0 -g -fprofile-arcs -ftest-coverage
23+
CFLAGS += -O0 -g -coverage
24+
LDFLAGS += -g -ftest-coverage -fprofile-arcs
25+
endif
26+
27+
ifneq ($(ICE_BLDDEBUG), true)
28+
ifneq ($(ICE_COVERAGE), true)
29+
FFLAGS += -O2
30+
CFLAGS += -O2
31+
endif
32+
endif
33+
34+
#SCC := gcc
35+
#SFC := gfortran
36+
SCC := cc
37+
SFC := ftn
38+
MPICC := cc
39+
MPIFC := ftn
40+
41+
ifeq ($(ICE_COMMDIR), mpi)
42+
FC := $(MPIFC)
43+
CC := $(MPICC)
44+
else
45+
FC := $(SFC)
46+
CC := $(SCC)
47+
endif
48+
LD:= $(FC)
49+
50+
# defined by module
51+
#NETCDF_PATH := $(NETCDF)
52+
#PNETCDF_PATH := $(PNETCDF)
53+
#PNETCDF_PATH := /glade/apps/opt/pnetcdf/1.3.0/intel/default
54+
#LAPACK_LIBDIR := /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
55+
56+
#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs
57+
58+
INCLDIR := $(INCLDIR)
59+
INCLDIR += -I$(NETCDF_PATH)/include
60+
61+
LIB_NETCDF := $(NETCDF_PATH)/lib
62+
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
63+
#LIB_MPI := $(IMPILIBDIR)
64+
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
65+
66+
ifeq ($(ICE_THREADED), true)
67+
LDFLAGS += -fopenmp
68+
CFLAGS += -fopenmp
69+
FFLAGS += -fopenmp
70+
endif
71+
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#==============================================================================
2+
# Macros file for NavyDSRC blueback, intel compiler
3+
#==============================================================================
4+
5+
CPP := fpp
6+
CPPDEFS := -DFORTRANUNDERSCORE ${ICE_CPPDEFS}
7+
CFLAGS := -c -O2 -fp-model precise -fcommon
8+
9+
FIXEDFLAGS := -132
10+
FREEFLAGS := -FR
11+
FFLAGS := -fp-model precise -convert big_endian -assume byterecl -ftz -traceback
12+
# -mcmodel medium -shared-intel
13+
FFLAGS_NOOPT:= -O0
14+
15+
ifeq ($(ICE_BLDDEBUG), true)
16+
# fpe0 produces an abort in hdf5 ~v1.14 which is fixed in 1.14.4.2
17+
FFLAGS += -O0 -g -check uninit -check bounds -check pointers -fpe1 -check noarg_temp_created
18+
# FFLAGS += -O0 -g -check uninit -check bounds -check pointers -fpe0 -check noarg_temp_created
19+
# FFLAGS += -O0 -g -check all -fpe0 -ftrapuv -fp-model except -check noarg_temp_created -init=snan,arrays
20+
else
21+
FFLAGS += -O2
22+
endif
23+
24+
#SCC := icx
25+
#SFC := ifort
26+
SCC := cc
27+
SFC := ftn
28+
MPICC := cc
29+
MPIFC := ftn
30+
31+
ifeq ($(ICE_COMMDIR), mpi)
32+
FC := $(MPIFC)
33+
CC := $(MPICC)
34+
else
35+
FC := $(SFC)
36+
CC := $(SCC)
37+
endif
38+
LD:= $(FC)
39+
40+
# defined by module
41+
#NETCDF_PATH := $(NETCDF)
42+
#PNETCDF_PATH := $(PNETCDF)
43+
#PNETCDF_PATH := /glade/apps/opt/pnetcdf/1.3.0/intel/default
44+
#LAPACK_LIBDIR := /glade/apps/opt/lapack/3.4.2/intel/12.1.5/lib
45+
46+
#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs
47+
48+
INCLDIR := $(INCLDIR)
49+
INCLDIR += -I$(NETCDF_PATH)/include
50+
51+
LIB_NETCDF := $(NETCDF_PATH)/lib
52+
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
53+
#LIB_MPI := $(IMPILIBDIR)
54+
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
55+
56+
ifeq ($(ICE_THREADED), true)
57+
LDFLAGS += -qopenmp
58+
CFLAGS += -qopenmp
59+
FFLAGS += -qopenmp
60+
endif
61+
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#==============================================================================
2+
# Makefile macros for NavyDSRC blueback, nvhpc compiler
3+
#==============================================================================
4+
5+
CPP := nvc -Mcpp
6+
CPPDEFS := -DFORTRANUNDERSCORE -DNO_R16 ${ICE_CPPDEFS}
7+
CFLAGS := -c -Kieee
8+
9+
FIXEDFLAGS := -Mfixed
10+
FREEFLAGS := -Mfree
11+
FFLAGS := -Kieee -byteswapio -traceback
12+
FFLAGS_NOOPT:= -O0
13+
14+
ifeq ($(ICE_BLDDEBUG), true)
15+
# FFLAGS += -O0 -g -Ktrap=fp -Mbounds -Mchkptr
16+
# FFLAGS += -O0 -g -Ktrap=fp -Mbounds
17+
# FFLAGS += -O0 -Ktrap=fp -Mbounds -Mchkptr
18+
# -Ktrap=fp produces an abort in hdf5 ~v1.14 which is fixed in 1.14.4.2
19+
FFLAGS += -O0
20+
# FFLAGS += -O0 -Ktrap=fp
21+
CFLAGS += -O0
22+
else
23+
# FFLAGS += -O2 -Mnofma -target=zen3
24+
FFLAGS += -O2
25+
CFLAGS += -O2
26+
endif
27+
28+
#SCC := nvc
29+
#SFC := nvfortran
30+
#MPICC := mpicc
31+
#MPIFC := mpif90
32+
SCC := cc
33+
SFC := ftn
34+
MPICC := cc
35+
MPIFC := ftn
36+
37+
ifeq ($(ICE_COMMDIR), mpi)
38+
FC := $(MPIFC)
39+
CC := $(MPICC)
40+
else
41+
FC := $(SFC)
42+
CC := $(SCC)
43+
endif
44+
LD:= $(FC)
45+
46+
NETCDF_PATH := $(NETCDF)
47+
48+
#PIO_CONFIG_OPTS:= --enable-filesystem-hints=gpfs
49+
50+
#INCLDIR := $(INCLDIR)
51+
52+
LIB_NETCDF := $(NETCDF_PATH)/lib
53+
#LIB_PNETCDF := $(PNETCDF_PATH)/lib
54+
#LIB_MPI := $(IMPILIBDIR)
55+
56+
#SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff -L$(LIB_PNETCDF) -lpnetcdf
57+
SLIBS := -L$(LIB_NETCDF) -lnetcdf -lnetcdff
58+
59+
ifeq ($(ICE_THREADED), true)
60+
LDFLAGS += -mp
61+
CFLAGS += -mp
62+
FFLAGS += -mp
63+
endif
64+
65+
ifeq ($(ICE_IOTYPE), pio1)
66+
LIB_PIO := $(PIO)/lib
67+
SLIBS := $(SLIBS) -L$(LIB_PIO) -lpio
68+
endif
69+
70+
ifeq ($(ICE_IOTYPE), pio2)
71+
LIB_PIO := $(PIO)/lib
72+
SLIBS := $(SLIBS) -L$(LIB_PIO) -lpiof -lpioc
73+
endif
74+

0 commit comments

Comments
 (0)