University of Colorado
Public releases have an "r" after the release name, e.g. 5_2_0r. Public releases that have been patched are labeled with their patch number e.g. "rp1", "rp2". Tasks marked with a ** are required for the release. Tasks with a ^ are expected to come from an outside contribution.
|**Performance profiling/optimization of Array sparse matrix multiply including petascale processor counts||Evaluate memory, speed and scaling performance of the sparse matrix multiply on large numbers of processors.|
|**Continued development of basic new Grid||Includes improved documentation and additional methods for setting coordinates.|
|**Implement array redistribution using new Array communications||Implement redistribution using new Array communications instead of the old Route. This is necessary for the Stage 2 CCSM evaluation, and is a prerequisite for pulling out the old communications.|
|**Move Field, Bundle, and Component to new Array and Grid||Replace old Grid and Array with new Grid and Array in Field, Bundle, and Component and remove old Grid, Array, and Regrid from public interfaces. This was done for create and a limited number of other methods.|
|**Array sparse matrix multiply supports undistributed dimensions||Complete ESMF_ArraySparseMatMul() implementation to work with Arrays with undistributed dimensions.|
|**Test, examples, and documentation review for Array||Test, examples, and documentation review for basic Array functions.|
|**Communications consolidation||Consolidate old and new communications. None of the old Array and Route communications were retained.|
|**Implement replicated Arrays to support undistributed dimensions||Allow the creation of Arrays on DistGrids where not all DistGrid dimensions are associated with Array dimensions. The Array will be replicated along the un-associated DistGrid dimensions. One immediate application of this feature is that it allows for natural representation of rectilinear grids.|
|ESMF_ArrayGather() for single patch simple connectivity Grids||Implement ESMF_ArrayGather() for single-tile Grids. ESMF_ArrayScatter() was implemented and TKR-overloaded for v3.0.2.|
|wJET port for NOAA||Resolve failures on the NOAA wJET system. Some issues still remain and are noted in known bugs and support tickets, but there is a working port.|
|Tests and examples for ensembles||Create example(s) or system test(s) showing how ESMF can be set up to run ensembles.|
|Method to return IRF and phase||Method to return IRF and phase|
|**Restore field and bundle communication methods||The first stage of this effort, delivered for v3.1.0, was integrating new Grid and Array into Fields and Bundles for Create/Get/Set. This task is restoring the communication methods.|
|**Add initial C interfaces for pWASH123||The model pWASH123 is written in C and requires ESMF interfaces for coupling. DoD has provided funds to complete this task.|
|Demonstrate use of test harness with redistribution and regrid||Test harness must be complete to the point at which redistribution and regrid tests can be implemented and included in the distribution.|
|**Implement location streams||Incorporate the location stream code developed by Will Sawyer into the ESMF source distribution.|
|**Continue development of structured grids||This may include: 1) implement edge connectivities, 2) implement arbitrary distributions, 3) support, documentation, and standardization, 4) methods needed for regrid implementation, 5) restructuring of the Grid class as a result of location streams.|
|Add VM documentation||VM is currently sparse on documentation. This task is to bring this up-to-date.|
|**Robust general regridding||This capability is based on an unstructured 3D grid representation for which there is currently a working prototype. The work here is in interface design, documentation, internal integration, and standardization of behavior. This is an initial implementation and will likely just include bilinear regridding.|
|Reconcile and close old tickets||Review all tickets pertinent to 3.1.0 and notify users and close out the tickets.|
|ESMF_DistGridGet() provides topology information||In order to support single patch DistGrids with simple connectivity, e.g. periodicity, the ESMF_DistGridGet() implementation must be advanced to provide the necessary topology information. This task includes the implementation of necessary DistGrid internal data representations.|
|Test, profile, and documentation review for Array communications||Profile performance and provide documentation for Array communications.|
|Create attpacks and enable attribute hierarchies||Introduce the ability to create attribute packages, and also the ability to nest attributes in other attributes.|
|**Implement unstructured grid support||
This task is a placeholder. The unstructured grid support
that is required is currently ill-defined and the time estimate here is uncertain.
|**Continue implementation of regrid||This is not well-defined. It continues the work started in v3.1.1 on regrid, possibly including 1) additional regrid techniques, and 2) additional modes of execution, such as regrid between concurrently executing components.|
|**Initial implementation of exchange grids||This is not well defined and will require a design cycle.|
|Performance profiling of Bundles with sparse matrix multiply||Profile Array and Field Bundles for redistribution and sparse matrix multiply.|
|Component concept works with MAPL||Currently MAPL is based on certain assumptions about the interaction between Components and VM that don't hold in general. In order to allow MAPL to work correctly where components run on different sets of PETs it will be necessary to adjust some of the Component/VM concepts in ESMF. This task will require collaboration with the MAPL developers to ensure full compatibility.|
|Improved error reporting||
This task includes the following: 1) Formulate and implement a public API to LogErr that assumes only "use ESMF_Mod" in user code, no special ESMF or other "include"
statements. 2) Propose a standard way of how user code should employ the public LogErrAPI to handle RCs returned from ESMF calls. 3) Showcase this public API
and its use in the LogErr/examples. 4) Rework the LogErr section in the Reference Manual.
|Use test case for ESMF_StateReconcile()||Add new system test(s) to stress ESMF_StateReconcile(). This should include sending large numbers of Fields and nested States.|
|Make concurrency more robust||
It is not yet fully clear what this task involves, so the estimate may be way off. However, it is at minimum: a) removing the fixed buffer size that is currently in use and replacing it with a buffer of calculated size and b) addressing issues concerning
initialization that were revealed in intern Array when doing init fixes - the solution may be waiting for intern Array removal.