Skip to content

Commit

Permalink
Merge branch 'jgfouca/branch-for-to-acme-10-25-2017-pr' (PR #1871)
Browse files Browse the repository at this point in the history
ESMCI Version: cime5.4.0-alpha.06 10/25/2017

New user interface features
case.submit now supports arbitrary prerequisites
Add option to define test types in query_testlists
Add ability to cancel batch jobs to the system
Add --baseline-root argument to case.cmpgen_baselines
Use keyword-value pairs for create_clone call

Changes to case control system.
Fix COST_PES and TOTALPES for titan (aprun)
Rename PES_PER_NODE to MAX_MPITASKS_PER_NODE.
Resolve confusion between components and component classes
Add support for python3!
Allow certain batch systems (PBS) to pass flags to case.run/case.test via environment var
Refactor queue selection, use nodemin/nodemax instead of jobmin jobmax
Fix E3SM idmap check.
ERR test rework.
New error trap if invalid "idmap" file is present in seq_maps.rc
Fix generate and compare baseline functions
Add a derived variable NTASKS_PER_INST_COMP where COMP is the component name (ATM, LND, etc)
New batch_env optional entry in config_batch
new batch_cancel field in config_batch
Fix tests for small systems.
Refactor CPLHIST mode and add DATM CPLHIST topo capability
Cleanup of the compvar implementation
Add COMP_ROOT_DIR_ variables so that a component can be moved with the change of a single cime variable
Make sure user changes to wallclock/queue are not lost

New tools
Rewrite of load balancing tool (from CMDV)

Coupler/driver changes
only run driver build namelist after first da cycle

Fixes #1845
Fixes #1426

[BFB]

* jgfouca/branch-for-to-acme-10-25-2017-pr: (437 commits)
  Fixes for 2-case building
  Critical bug fix correcting unicode/str confusion
  Add mpas rpointer fix back in
  Fix config mistakes in config_batch
  Fix archive configuration problem for acme
  Fix R test-opt
  Fix duplication of entries
  Minor config_machines fixup
  Remove extraneous logger.info and change a warning to logger.warning
  Make the prereq test more flexible and correct
  Implement a much simpler script_regression_test tests
  Partial implementation of the prereq test. Still need to find out a generic way of verifying that the dependant job actually depends on the other one
  Revert change from afterok to afterany; this should only be done if the user specifically requests it
  Implements the prereq argument for case.submit, allowing the user to specify jobs which should finish (not necessarily successfully) before running the current job
  Update ChangeLog
  Change case.st_archive dependency string to not include strings indicating unsupported logic. Fix cobalt depend_string. Add depend_separator field to support LSF
  update mpt and pnetcdf on cheyenne
  Update description for TOTALPES
  Include spare nodes in COST_PES
  Update ChangeLog
  ...
  • Loading branch information
jgfouca committed Nov 1, 2017
2 parents 1b9f515 + 386d547 commit ffb3d95
Show file tree
Hide file tree
Showing 308 changed files with 20,007 additions and 12,130 deletions.
1,497 changes: 1,497 additions & 0 deletions ChangeLog

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion LICENSE.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ All rights reserved.
Copyright (c) 2017, Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
and
Copyright (c) 2017, UChicago Argonne, LLC, All Rights Reserved
under Contract No. DE-AC02-06CH11357 with the Department of Energy

Developed by:
University Corporation for Atmospheric Research - National Center for Atmospheric Research
https://www2.cesm.ucar.edu/working-groups/sewg
and
DOE BER ACME project team members, including those at SNL and ANL
DOE BER E3SM project team members, including those at SNL and ANL

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"),
Expand Down
64 changes: 28 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,40 @@
# cime
Common Infrastructure for Modeling the Earth

**cime** (pronounced: seem) represents the infrastructure code for the
CIME, pronounced “SEAM”, contains the support scripts (configure, build, run, test), data models, essential
utility libraries, a “main” and other tools that are needed to build a single-executable coupled Earth System Model.
CIME is available in a stand-alone package that can be compiled and tested without active prognostic components
but is typically included in the source of a climate model. CIME does not contain: any active components,
any intra-component coupling capability (such as atmosphere physics-dynamics coupling).

*cime* (pronounced: seem) is currently used by the
<a href="http://www2.cesm.ucar.edu">Community Earth System Model </a>
(CESM) and the <a href="https://climatemodeling.science.energy.gov/projects/accelerated-climate-modeling-energy">
Accelerated Climate Model for Energy </a> (ACME).
*cime* providess scripts for configuration, build, and testing of
models, as well as code for data and stub models for climate components,
and a driver code for bringing all the climate components together in a single executable.
(CESM) and the <a href="https://climatemodeling.science.energy.gov/projects/energy-exascale-earth-system-model">
Energy Exascale Earth System Model</a> (E3SM).

# Documentation

See <a href="http://esmci.github.io/cime">esmci.github.io/cime</a>

# Developers

*cime* was initially extracted from CESM as a stand-alone capability in 2015
by members of the CSEG group at NCAR, the software engineering team of
the CESM model. The CSEG group had been developing this infrastrucure within
CESM for a number of years using NSF and DOE funding. After version 4 was released,
a joint development partnership was started with the software engineering group of
ACME, a DOE-funded project, which had branched from CESM in 2014.
Starting with development of version 5, *cime* is cooperative effort with contributions
and ownership from members of both teams.

The following table documents the developers who have contributed to *cime*,
showing what versions of they contributed to, and with what source(s) of support.

Name | Institution | Versions | Funding Source (for versions)
---------|------------------|----------|----------------------
Mariana Vertenstein | NCAR | 1 - D | NSF, DOE
Jim Edwards | NCAR | 1 - D | NSF (1-D), DOE(1-2)
Jim Foucar | SNL | 5 - D | DOE
Rob Jacob | ANL | 5 - D | DOE
Bill Sacks | NCAR | 1 - D | NSF, DOE
Andreas Wilke | ANL | 5 - D | DOE
Jason Sarich | ANL | 5 - D | DOE
Michael Deakin | SNL | 5 - D | DOE
Erich Foster | SNL | 5 - D | DOE
Alice Bertini | NCAR | 1 - D | NSF
Chris Fischer | NCAR | 5 - D | NSF
Steve Goldhaber | NCAR | 1 - D | NSF, DOE
Mike Levy | NCAR | 1 - D | NSF, DOE
Sean Santos | NCAR | 1 - 4 | NSF

_Key: D = Current development version (i.e. still active on project)_
## Lead Developers
Case Control System: Jim Edwards (NCAR), Jim Foucar (SNL)

MCT-based Coupler/Driver: Mariana Vertenstein (NCAR), Robert Jacob (ANL)

Data Models: Mariana Vertenstein (NCAR)

## Also Developed by
Alice Bertini (NCAR), Tony Craig (NCAR), Michael Deakin (SNL), Chris Fischer (NCAR), Steve Goldhaber (NCAR),
Erich Foster (SNL), Mike Levy (NCAR), Bill Sacks (NCAR), Andrew Salinger (SNL), Sean Santos (NCAR), Jason Sarich (ANL),
Andreas Wilke (ANL).

# Acknowledgements

CIME is jointly developed with support from the Earth System Modeling program of DOE's BER office and the CESM program
of NSF's Division of Atmospheric and Geospace Sciences.

# License

CIME is free software made available under the BSD License. For details see the LICENSE file.
34 changes: 17 additions & 17 deletions config/acme/allactive/config_pesall.xml
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="any">
<comment>hires 675 nodes, 64x2, ~2sypd</comment>
<PES_PER_NODE>64</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>43200</ntasks_atm>
Expand Down Expand Up @@ -405,7 +405,7 @@
</pes>
<pes compset="any" pesize="S">
<comment>hires 159 nodes, 68x2</comment>
<PES_PER_NODE>68</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>68</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>136</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>10800</ntasks_atm>
Expand Down Expand Up @@ -841,7 +841,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="L">
<comment>80 nodes, 68x1</comment>
<PES_PER_NODE>68</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>68</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>68</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>5400</ntasks_atm>
Expand Down Expand Up @@ -876,7 +876,7 @@
</pes>
<pes compset="any" pesize="any">
<comment>40 nodes, 68x2</comment>
<PES_PER_NODE>68</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>68</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>136</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>2700</ntasks_atm>
Expand Down Expand Up @@ -911,7 +911,7 @@
</pes>
<pes compset="any" pesize="S">
<comment>4 nodes, 68x2</comment>
<PES_PER_NODE>68</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>68</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>136</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>270</ntasks_atm>
Expand Down Expand Up @@ -1727,7 +1727,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="any">
<comment>2 nodes, 64x2</comment>
<PES_PER_NODE>64</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>128</ntasks_atm>
Expand Down Expand Up @@ -2025,7 +2025,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="any">
<comment>4 nodes, 64x2</comment>
<PES_PER_NODE>64</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>256</ntasks_atm>
Expand Down Expand Up @@ -2249,7 +2249,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="any">
<comment>1 node, 64x2</comment>
<PES_PER_NODE>64</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>64</ntasks_atm>
Expand Down Expand Up @@ -2547,7 +2547,7 @@
<mach name="cori-knl">
<pes compset="any" pesize="any">
<comment>3 nodes, 68x2, 8 elem per MPI</comment>
<PES_PER_NODE>68</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>68</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>136</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>192</ntasks_atm>
Expand Down Expand Up @@ -5937,7 +5937,7 @@
<mach name="edison">
<pes compset="CAM.+CLM.+DOCN." pesize="any">
<comment>"PMC - 114 node F-compset gets around 10.5 SYPD"</comment>
<PES_PER_NODE>24</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>24</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>48</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>1350</ntasks_atm>
Expand Down Expand Up @@ -6087,7 +6087,7 @@
<mach name="cori-knl">
<pes compset="CAM5.+CLM45.+MPASCICE.+MPASO.+MOSART.+SGLC.+SWAV" pesize="any">
<comment>"101 nodes, 64x2, ~2sypd (kmod101)"</comment>
<PES_PER_NODE>64</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>64</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>128</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>5400</ntasks_atm>
Expand Down Expand Up @@ -6481,7 +6481,7 @@
<pes compset=".*CAM5.+CLM45.+CICE.+DOCN.+SROF.+SGLC.+SWAV.*" pesize="S">
<comment>ne120 F-compset on 512 nodes</comment>
<MAX_TASKS_PER_NODE>64</MAX_TASKS_PER_NODE>
<PES_PER_NODE>8</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>8</MAX_MPITASKS_PER_NODE>
<ntasks>
<ntasks_atm>3600</ntasks_atm>
<ntasks_cpl>2048</ntasks_cpl>
Expand Down Expand Up @@ -6516,7 +6516,7 @@
<pes compset=".*CAM5.+CLM45.+CICE.+DOCN.+SROF.+SGLC.+SWAV.*" pesize="M">
<comment>ne120 F-compset on 1024 nodes</comment>
<MAX_TASKS_PER_NODE>64</MAX_TASKS_PER_NODE>
<PES_PER_NODE>8</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>8</MAX_MPITASKS_PER_NODE>
<ntasks>
<ntasks_atm>7200</ntasks_atm>
<ntasks_cpl>7200</ntasks_cpl>
Expand Down Expand Up @@ -6551,7 +6551,7 @@
<pes compset=".*CAM5.+CLM45.+CICE.+DOCN.+SROF.+SGLC.+SWAV.*" pesize="L">
<comment>ne120 F-compset on 2048 nodes</comment>
<MAX_TASKS_PER_NODE>64</MAX_TASKS_PER_NODE>
<PES_PER_NODE>8</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>8</MAX_MPITASKS_PER_NODE>
<ntasks>
<ntasks_atm>14400</ntasks_atm>
<ntasks_cpl>14400</ntasks_cpl>
Expand Down Expand Up @@ -6663,7 +6663,7 @@
<mach name="anvil">
<pes compset=".*CAM5.+CLM45.+MPASCICE.+MPASO.+MOSART.+SGLC.+SWAV" pesize="S">
<comment> -compset A_WCYCL* -res ne30_oEC* on 32 nodes pure-MPI </comment>
<PES_PER_NODE>32</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>32</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>32</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>675</ntasks_atm>
Expand Down Expand Up @@ -6698,7 +6698,7 @@
</pes>
<pes compset=".*CAM5.+CLM45.+MPASCICE.+MPASO.+MOSART.+SGLC.+SWAV" pesize="any">
<comment> -compset A_WCYCL* -res ne30_oEC* on 59 nodes pure-MPI </comment>
<PES_PER_NODE>32</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>32</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>32</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>1350</ntasks_atm>
Expand Down Expand Up @@ -6733,7 +6733,7 @@
</pes>
<pes compset=".*CAM5.+CLM45.+MPASCICE.+MPASO.+MOSART.+SGLC.+SWAV" pesize="L">
<comment> -compset A_WCYCL* -res ne30_oEC* on 115 nodes pure-MPI </comment>
<PES_PER_NODE>32</PES_PER_NODE>
<MAX_MPITASKS_PER_NODE>32</MAX_MPITASKS_PER_NODE>
<MAX_TASKS_PER_NODE>32</MAX_TASKS_PER_NODE>
<ntasks>
<ntasks_atm>2700</ntasks_atm>
Expand Down
2 changes: 1 addition & 1 deletion config/acme/config_files.xml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
<type>char</type>
<values>
<value>$CIMEROOT/config/acme/config_archive.xml</value>
<value component="cpl" >$CIMEROOT/src/drivers/mct/cime_config/config_archive.xml</value>
<value component="drv" >$CIMEROOT/src/drivers/mct/cime_config/config_archive.xml</value>
<!-- data model components -->
<value component="drof">$CIMEROOT/src/components/data_comps/drof/cime_config/config_archive.xml</value>
<value component="datm">$CIMEROOT/src/components/data_comps/datm/cime_config/config_archive.xml</value>
Expand Down
Loading

0 comments on commit ffb3d95

Please sign in to comment.