Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

logical args to Make should not be quoted, and update esmf library and cheyenne_gnu compiler versions #3985

Merged
merged 4 commits into from
Jun 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions config/cesm/machines/config_compilers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,12 @@ using a fortran linker.
<CPPDEFS>
<append MODEL="pio1"> -DNO_MPIMOD </append>
</CPPDEFS>
<FFLAGS>
<!-- -fallow-argument-mismatch is needed for building with the mpich library with gfortran10;
-fallow-invalid-boz is needed for some components that have non-standard uses of BOZ literal constants with gfortran10.
See https://github.com/ESMCI/cime/issues/3846 for details. -->
<append> -fallow-argument-mismatch -fallow-invalid-boz </append>
</FFLAGS>
<SLIBS>
<append> -ldl </append>
</SLIBS>
Expand Down
80 changes: 40 additions & 40 deletions config/cesm/machines/config_machines.xml
Original file line number Diff line number Diff line change
Expand Up @@ -559,76 +559,76 @@ This allows using a different mpirun command to launch unit tests
<command name="load">mkl</command>
</modules>
<modules compiler="gnu">
<command name="load">gnu/9.1.0</command>
<command name="load">openblas/0.3.6</command>
<command name="load">gnu/10.1.0</command>
Copy link
Member

@billsacks billsacks Jun 3, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you confirmed that this doesn't change answers for any of our CESM testing? It would be good to know that before merging (updating the top-level PR comment and thus the merge message, if needed).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the past, I think we've said we should do at least prealpha testing when doing a major compiler version update like this. @fischer-ncar , if you or @jedwards4b hasn't already done so, would you be able to run the cheyenne_gnu prealpha tests with baseline comparisons? (And prebeta cheyenne_gnu if you feel it's warranted; I notice that prealpha cheyenne_gnu has very little coverage.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@billsacks I've start prealpha and prebeta tests for cheyenne_gnu.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Testing is finished. gnu/10.1.0 is bfb with gnu/9.1.0.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just FYI, we did find a case where answers changed because of this update. See ESCOMP/CTSM#1464

I want to highlight it just to reinforce that our paranoia over compiler updates is often justified. :-) It did take us a bit to track it down to this change. It's also helpful that the compiler change was in one PR and not mixed with anything else, so thanks for that.

<command name="load">openblas/0.3.9</command>
</modules>
<modules compiler="pgi">
<command name="load">pgi/20.4</command>
</modules>
<modules compiler="intel" mpilib="!mpi-serial" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/intel/19.1.1/</command>
<command name="load">esmf-8.1.1-ncdfio-mpt-g</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-g</command>
</modules>
<modules compiler="intel" mpilib="!mpi-serial" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/intel/19.1.1/</command>
<command name="load">esmf-8.1.1-ncdfio-mpt-O</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-O</command>
</modules>
<modules compiler="intel" mpilib="mpi-serial" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/intel/19.1.1/</command>
<command name="load">esmf-8.1.1-ncdfio-mpiuni-g</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-g</command>
</modules>
<modules compiler="intel" mpilib="mpi-serial" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/intel/19.1.1/</command>
<command name="load">esmf-8.1.1-ncdfio-mpiuni-O</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-O</command>
</modules>
<modules compiler="gnu" mpilib="mpt" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpt-g</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-g</command>
</modules>
<modules compiler="gnu" mpilib="mpt" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpt-O</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-O</command>
</modules>
<modules compiler="gnu" mpilib="openmpi" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-openmpi-g</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-openmpi-g</command>
</modules>
<modules compiler="gnu" mpilib="openmpi" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-openmpi-O</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-openmpi-O</command>
</modules>
<modules compiler="gnu" mpilib="mpi-serial" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpiuni-g</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-g</command>
</modules>
<modules compiler="gnu" mpilib="mpi-serial" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/9.1.0/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpiuni-O</command>
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/gnu/10.1.0/</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-O</command>
</modules>

<modules compiler="pgi" mpilib="mpt" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpt-g</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-g</command>
</modules>
<modules compiler="pgi" mpilib="mpt" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpt-O</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpt-O</command>
</modules>
<modules compiler="pgi" mpilib="openmpi" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-openmpi-g</command>
<command name="load">esmf-8.2.0b10-ncdfio-openmpi-g</command>
</modules>
<modules compiler="pgi" mpilib="openmpi" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-openmpi-O</command>
<command name="load">esmf-8.2.0b10-ncdfio-openmpi-O</command>
</modules>
<modules compiler="pgi" mpilib="mpi-serial" DEBUG="TRUE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpiuni-g</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-g</command>
</modules>
<modules compiler="pgi" mpilib="mpi-serial" DEBUG="FALSE">
<command name="use">/glade/p/cesmdata/cseg/PROGS/modulefiles/esmfpkgs/pgi/20.4/</command>
<command name="load">esmf-8.1.0b41-ncdfio-mpiuni-O</command>
<command name="load">esmf-8.2.0b10-ncdfio-mpiuni-O</command>
</modules>
<modules mpilib="mpt" compiler="gnu">
<command name="load">mpt/2.21</command>
Expand All @@ -637,7 +637,7 @@ This allows using a different mpirun command to launch unit tests
</modules>
<modules mpilib="mpt" compiler="intel">
<command name="load">mpt/2.22</command>
<command name="load">netcdf-mpi/4.7.4</command>
<command name="load">netcdf-mpi/4.8.0</command>
<command name="load">pnetcdf/1.12.2</command>
</modules>
<modules mpilib="mpt" compiler="pgi">
Expand Down Expand Up @@ -3052,35 +3052,35 @@ This allows using a different mpirun command to launch unit tests
<cmd_path lang="sh">module</cmd_path>
<cmd_path lang="csh">module</cmd_path>
<modules>
<command name="purge"/>
<command name="purge"/>
</modules>
<modules compiler="intel">
<command name="load">intel20.1/20.1.217</command>
<command name="load">intel20.1/szip/2.1.1</command>
<command name="load">cmake/3.17.3</command>
<command name="load">curl/7.70.0</command>
<command name="load">intel20.1/20.1.217</command>
<command name="load">intel20.1/szip/2.1.1</command>
<command name="load">cmake/3.17.3</command>
<command name="load">curl/7.70.0</command>
</modules>
<modules mpilib="mpi-serial">
<command name="load">intel20.1/hdf5/1.12.0</command>
<command name="load">intel20.1/netcdf/C_4.7.4-F_4.5.3_CXX_4.3.1</command>
<command name="load">intel20.1/hdf5/1.12.0</command>
<command name="load">intel20.1/netcdf/C_4.7.4-F_4.5.3_CXX_4.3.1</command>
</modules>
<modules mpilib="!mpi-serial">
<command name="load">impi20.1/19.7.217</command>
<command name="load">impi20.1/hdf5/1.12.0</command>
<command name="load">impi20.1/netcdf/C_4.7.4-F_4.5.3_CXX_4.3.1</command>
<command name="load">impi20.1/parallel-netcdf/1.12.1</command>
<command name="load">impi20.1/19.7.217</command>
<command name="load">impi20.1/hdf5/1.12.0</command>
<command name="load">impi20.1/netcdf/C_4.7.4-F_4.5.3_CXX_4.3.1</command>
<command name="load">impi20.1/parallel-netcdf/1.12.1</command>
</modules>
<modules compiler="intel" mpilib="!mpi-serial" DEBUG="TRUE">
<command name="load">impi20.1/esmf/8.0.1-intelmpi-64-g</command>
<command name="load">impi20.1/esmf/8.0.1-intelmpi-64-g</command>
</modules>
<modules compiler="intel" mpilib="!mpi-serial" DEBUG="FALSE">
<command name="load">impi20.1/esmf/8.0.1-intelmpi-64-O</command>
<command name="load">impi20.1/esmf/8.0.1-intelmpi-64-O</command>
</modules>
<modules compiler="intel" mpilib="mpi-serial" DEBUG="TRUE">
<command name="load">intel20.1/esmf/8.0.1-mpiuni-64-g</command>
<command name="load">intel20.1/esmf/8.0.1-mpiuni-64-g</command>
</modules>
<modules compiler="intel" mpilib="mpi-serial" DEBUG="FALSE">
<command name="load">intel20.1/esmf/8.0.1-mpiuni-64-O</command>
<command name="load">intel20.1/esmf/8.0.1-mpiuni-64-O</command>
</modules>
</module_system>
<environment_variables>
Expand Down
8 changes: 6 additions & 2 deletions scripts/lib/CIME/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,13 @@ def xml_to_make_variable(case, varname, cmake=False):
varvalue = case.get_value(varname)
if varvalue is None:
return ""
if type(varvalue) == type(True):
if isinstance(varvalue, bool):
varvalue = stringify_bool(varvalue)
return "{}{}=\"{}\" ".format("-D" if cmake else "", varname, varvalue)

if cmake or isinstance(varvalue, str):
return "{}{}=\"{}\" ".format("-D" if cmake else "", varname, varvalue)
else:
return "{}={} ".format(varname, varvalue)

###############################################################################
def uses_kokkos(case):
Expand Down