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 required for a release are marked with a **. Tasks with a ^ are expected to come from an outside contribution.
|Array support of single patch simple conn DistGrid||
The Array class implementation supports single
patch DistGrids with simple connectivity. ConnectionTransforms are not yet handled.
|Profile and optimize ArraySparseMatMul||Profile and optimize the ArraySparseMatMul() method for realistic data sets to ensure performance compares to other packages.|
|Array communications underpinning and Route merge||Delivered an Array communications strategy and implementation utilized in Array communication calls such as: ArraySparseMatMul(), ArrayHalo(), ArrayGather(), ArrayScatter(). Merge of this code with the older version of Route was not yet addressed.|
|**Basic new Grid functionality||This 1st phase will include the design of the entire single and multi-tile architecture, but only the implementation of the single tile case. The functionality includes the creation and destruction of a Grid container class and a Grid tile class. An important function of the Grid class is to generate the complete Grid specification from the information that's supplied. The interfaces here are normal subroutine based-interfaces (no use of function tables/set services paradigm). This task will include the design and implementation of a basic set of information retrieval subroutines for the Grid class (e.g. get coordinate information).|
The ESMF_ArraySparseMatMul() implementation works with pre-distributed
interpolation weights. It does not work with undistributed dimensions yet, this was deferred to the next release.
|**Test, examples, and doc review for Array sparse matrix multiply||Develop a use test case using the new Grid structures and the enhanced Array sparse matrix multiply routine that illustrates how to interpolate between two grids using the sparse matrix multiply routines. The custom weights needed for the calls will be provided externally using the I/O capability currently in use in the original sparse matrix multiply use test case.|
|**Use test case for new Grid and Array sparse matrix multiply||Develop a use test case using the new Grid structures and the enhanced Array sparse matrix multiply routine that illustrates how to interpolate between two grids using the sparse matrix multiply routines. The custom weights needed for the calls will be provided externally using the I/O capability currently in use in the original sparse matrix multiply use test case.|
|**Implement array redist using new Array communications||Implement redistribution using new Array communications instead of the old Route. This will be necessary for the Stage 2 CCSM evaluation, and is a prerequisite for pulling out the old communications.|
|**Continued development of basic new Grid||Includes additional methods for setting coords, improved documentation, and a shortcut for set all staggers at once.|
|**Performance profiling/optimization of Array sparse matrix multiply including petascale||Evaluate memory, speed and scaling performance of sparse matrix multiply on large numbers of processors.|
|**Move Field, Bundle, and Component to new Array and Grid||This task involves replacing old Grid and Array with new Grid and Array in Field, Bundle, and Component and removing old Grid, Array, and Regrid.|
|**Implement replicated Arrays||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 in the Grid implementation of factorized coordinate Arrays. It will allow for natural representation of rectilinear grids.|
|**Array sparse matrix multiply supports undistributed dimensions||Need to complete ESMF_ArraySparseMatMul() implementation to work with Arrays with undistributed dimensions.|
|**Communications consolidation/Route merge||Merge any functionality from Route that will be retained with the new Array communications.|
|**Test, examples, and documentation review for Array||Test, examples, and documentation review for basic Array functions.|
|Improved error reporting||
This task includes the following: 1) Formulate and implement a convenient public API to LogErr that does not require special preprocessor macros to be available in the user code. Only assume "use ESMF_Mod" in user code, no special ESMF or other "include"
statements. (First see what's there already, we may already have what we need.) 2) Propose a standard way of how user code should employ the public LogErr API to handle RCs returned from ESMF calls. 3) Showcase this public API and its use in the LogErr/examples, making sure all LogErr/examples follow the new guideline. 3) Reworking LogErr/examples will most likely result in a rework of the Usage subsection of the LogErr section in the Reference Manual. This opportunity should be used to bring this section in line with the newly proposed public use of LogErr.
|^Port to Sun platform||Port to the Sun platform for AFWA and GEOS-CHEM.|
|Interlanguage implementation consistency||Cleanup for robustness and easier maintenance.|
|Add ArrayBundle create and sparse matrix multiply methods||ArrayBundles are needed in order to optimize sends of Arrays that are discontinuous in memory but share the same DistGrid.|
|^Contributed port to NEC||Should be contributed by the NEC group.|
|System tests for OpenMP||Need to create a system test mode for testing with OpenMP.|
|**Optimization to the VM for petascale||These are likely to become more obvious and better defined with the performance evaluation of the Array SMM.|
|Make the treatment of logicals and characters consistent||This is a follow-on task to the datatype consistency task that Rosalinda completed during fall/winter 2006/2007. She did not have time before leaving to address logicals and character strings.|
|**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, internal integration, and standardization of behavior.|
|Add VM documentation||VM is currently sparse on documentation. This task is to bring this up-to-date.|
|Tests and examples for ensembles||We need examples showing how ESMF can be set up to run ensembles.|
|Tests and examples for reconcile||Add new system tests which stress reconcile (multiple time steps, many objects in states). Also add new system test for ensemble components.|
|**Performance profiling of bundles with sparse matrix multiply||Profile array bundles for redist and sparse matrix multiply.|
|Continued development of basic new grid||Expect focus on the incorporation of attributes and metrics into new grid.|
|**Implement new regrid tests in test framework||Extend the test framework design for regrid.|
|**Method to return IRF and phase||For GEOS-5 AGCM. See feature request #1241088.|