From 736c1771a8b6500c6aa82c2e06e21a03803c9a2a Mon Sep 17 00:00:00 2001 From: apcraig Date: Mon, 13 Jan 2025 19:56:29 -0700 Subject: [PATCH 1/4] Update derecho gnu to ncarenv/24.12, gcc12.4.0, cray-mpich/8.1.29 to support lcov code coverage testing. Does not yet support pio. --- cice.setup | 2 +- configuration/scripts/machines/env.derecho_gnu | 12 +++++++----- configuration/scripts/tests/cice.lcov.csh | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cice.setup b/cice.setup index 0e574f803..a855020c5 100755 --- a/cice.setup +++ b/cice.setup @@ -1173,7 +1173,7 @@ cp ${rundir}/compile/*.{gcno,gcda} ${testname_base}/codecov_output/ EOF cat >> ${tsdir}/report_lcov.csh << EOF -lcov --gcov-tool gcov -c -d ${rundir}/compile -o ${testname_base}/lcov.info +lcov --gcov-tool gcov -c --rc geninfo_unexecuted_blocks=1 -d ${rundir}/compile -o ${testname_base}/lcov.info if (-s ${testname_base}/lcov.info) then set lcovalist = "\${lcovalist} -a ${testname_base}/lcov.info" endif diff --git a/configuration/scripts/machines/env.derecho_gnu b/configuration/scripts/machines/env.derecho_gnu index 5c4ca46f0..a19190629 100644 --- a/configuration/scripts/machines/env.derecho_gnu +++ b/configuration/scripts/machines/env.derecho_gnu @@ -10,16 +10,16 @@ if ("$inp" != "-nomodules") then source ${MODULESHOME}/init/csh module --force purge -module load ncarenv/23.06 +module load ncarenv/24.12 module load craype -module load gcc/12.2.0 +module load gcc/12.4.0 module load ncarcompilers -module load cray-mpich/8.1.25 +module load cray-mpich/8.1.29 module load netcdf/4.9.2 #module load hdf5/1.12.2 #module load netcdf-mpi/4.9.2 -module load cray-libsci/23.02.1.1 +module load cray-libsci/24.03.0 if ($?ICE_IOTYPE) then if ($ICE_IOTYPE =~ pio*) then @@ -34,6 +34,8 @@ if ($ICE_IOTYPE =~ pio*) then endif endif +module load lcov + if ($?ICE_BFBTYPE) then if ($ICE_BFBTYPE =~ qcchk*) then module load conda @@ -61,7 +63,7 @@ setenv OMP_STACKSIZE 64M setenv ICE_MACHINE_MACHNAME derecho setenv ICE_MACHINE_MACHINFO "HPE Cray EX Milan Slingshot 11" setenv ICE_MACHINE_ENVNAME gnu -setenv ICE_MACHINE_ENVINFO "gcc 12.2.0 20220819, cray-mpich 8.1.25, netcdf4.9.2, pnetcdf1.12.3, pio1.10.1, pio2.6.2" +setenv ICE_MACHINE_ENVINFO "gcc 12.4.0, cray-mpich 8.1.29, netcdf4.9.2, pnetcdf1.12.3, pio1.10.1, pio2.6.2" setenv ICE_MACHINE_MAKE gmake setenv ICE_MACHINE_WKDIR /glade/derecho/scratch/$user/CICE_RUNS setenv ICE_MACHINE_INPUTDATA /glade/campaign/cesm/development/pcwg diff --git a/configuration/scripts/tests/cice.lcov.csh b/configuration/scripts/tests/cice.lcov.csh index 5772833d1..39e16aa45 100644 --- a/configuration/scripts/tests/cice.lcov.csh +++ b/configuration/scripts/tests/cice.lcov.csh @@ -14,7 +14,7 @@ cp -p -r ${lcovhtmldir} ${lcovrepo}/ cd ${lcovrepo} set covp0 = `grep message coverage.json | cut -d : -f 2 | cut -d \" -f 2 | cut -d % -f 1` -set covp = `grep -i headerCovTableEntry ${lcovhtmldir}/index.html | grep % | head -1 | cut -d \> -f 2 | cut -d % -f 1` +set covp = `grep -i headerCovTableEntry ${lcovhtmldir}/index.html | grep % | head -1 | cut -d \> -f 2 | cut -d \& -f 1` set covpi = `echo $covp | cut -d . -f 1` set lcovhtmlname = "${covpi}%:${report_name}" From 0b773e7508ce46a12ca9ebb63fea68425905bbbc Mon Sep 17 00:00:00 2001 From: apcraig Date: Wed, 15 Jan 2025 17:02:55 -0700 Subject: [PATCH 2/4] Update modules, add pio capability to new env. Update compile logic to exclude debug flags when doing coverage testing. See https://github.com/linux-test-project/lcov/issues/385. --- .../scripts/machines/Macros.derecho_gnu | 21 ++++++++++--------- .../scripts/machines/env.derecho_gnu | 8 +++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/configuration/scripts/machines/Macros.derecho_gnu b/configuration/scripts/machines/Macros.derecho_gnu index e42e06f06..95e5e6f3e 100644 --- a/configuration/scripts/machines/Macros.derecho_gnu +++ b/configuration/scripts/machines/Macros.derecho_gnu @@ -11,25 +11,26 @@ 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 - ifeq ($(ICE_COVERAGE), true) FFLAGS += -O0 -g -fprofile-arcs -ftest-coverage CFLAGS += -O0 -g -coverage LDFLAGS += -g -ftest-coverage -fprofile-arcs -endif - -ifneq ($(ICE_BLDDEBUG), true) -ifneq ($(ICE_COVERAGE), true) +else +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 +else FFLAGS += -O2 CFLAGS += -O2 endif endif +#ifneq ($(ICE_BLDDEBUG), true) +#ifneq ($(ICE_COVERAGE), true) +#endif +#endif + SCC := gcc SFC := gfortran MPICC := mpicc diff --git a/configuration/scripts/machines/env.derecho_gnu b/configuration/scripts/machines/env.derecho_gnu index a19190629..9d676196c 100644 --- a/configuration/scripts/machines/env.derecho_gnu +++ b/configuration/scripts/machines/env.derecho_gnu @@ -11,25 +11,23 @@ source ${MODULESHOME}/init/csh module --force purge module load ncarenv/24.12 +module reset module load craype module load gcc/12.4.0 module load ncarcompilers module load cray-mpich/8.1.29 module load netcdf/4.9.2 -#module load hdf5/1.12.2 -#module load netcdf-mpi/4.9.2 - module load cray-libsci/24.03.0 if ($?ICE_IOTYPE) then if ($ICE_IOTYPE =~ pio*) then module unload netcdf module load netcdf-mpi/4.9.2 - module load parallel-netcdf/1.12.3 + module load parallel-netcdf/1.14.0 if ($ICE_IOTYPE == "pio1") then module load parallelio/1.10.1 else - module load parallelio/2.6.2 + module load parallelio/2.6.3 endif endif endif From 9d5c1d74023f8228cd81f30e6e0d1c698bd5df5a Mon Sep 17 00:00:00 2001 From: apcraig Date: Wed, 15 Jan 2025 17:07:07 -0700 Subject: [PATCH 3/4] Update derecho gnu env documentation --- configuration/scripts/machines/env.derecho_gnu | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configuration/scripts/machines/env.derecho_gnu b/configuration/scripts/machines/env.derecho_gnu index 9d676196c..330509636 100644 --- a/configuration/scripts/machines/env.derecho_gnu +++ b/configuration/scripts/machines/env.derecho_gnu @@ -61,7 +61,7 @@ setenv OMP_STACKSIZE 64M setenv ICE_MACHINE_MACHNAME derecho setenv ICE_MACHINE_MACHINFO "HPE Cray EX Milan Slingshot 11" setenv ICE_MACHINE_ENVNAME gnu -setenv ICE_MACHINE_ENVINFO "gcc 12.4.0, cray-mpich 8.1.29, netcdf4.9.2, pnetcdf1.12.3, pio1.10.1, pio2.6.2" +setenv ICE_MACHINE_ENVINFO "gcc 12.4.0, cray-mpich 8.1.29, netcdf4.9.2, pnetcdf1.14.0, pio1.10.1, pio2.6.3" setenv ICE_MACHINE_MAKE gmake setenv ICE_MACHINE_WKDIR /glade/derecho/scratch/$user/CICE_RUNS setenv ICE_MACHINE_INPUTDATA /glade/campaign/cesm/development/pcwg From 242329f7be9ff1c1b43f173d5e2c5585eaa6f53d Mon Sep 17 00:00:00 2001 From: apcraig Date: Wed, 15 Jan 2025 17:25:47 -0700 Subject: [PATCH 4/4] cleanup --- configuration/scripts/machines/Macros.derecho_gnu | 5 ----- 1 file changed, 5 deletions(-) diff --git a/configuration/scripts/machines/Macros.derecho_gnu b/configuration/scripts/machines/Macros.derecho_gnu index 95e5e6f3e..2a4e62424 100644 --- a/configuration/scripts/machines/Macros.derecho_gnu +++ b/configuration/scripts/machines/Macros.derecho_gnu @@ -26,11 +26,6 @@ else endif endif -#ifneq ($(ICE_BLDDEBUG), true) -#ifneq ($(ICE_COVERAGE), true) -#endif -#endif - SCC := gcc SFC := gfortran MPICC := mpicc