next up previous contents
Next: 3 Review Status Up: cpl6_reqdoc Previous: 1 Synopsis   Contents

Subsections

2 Requirements

2.1 Scientific Requirements

2.1.1 Component Model Control

The coupler steers the execution of the components of the CCSM, and coordinates and supports the transfer of data between the components. Each component model is unaware of the timestep or grid used by the other component models, and the component models communicate only through the coupler at a specified communication interval.

2.1.2 Flexibility

The coupler's interfaces to the component models must be well defined, such that existing component models can be swapped for new models, or benign substitutes, in a reasonably straightforward manner.

2.1.3 Extensibility

The coupler must allow the user to modify (add/delete/change) the types and amounts of data which are being exchanged between the coupler and the component models, or add a new model to the configuration, with minimal changes to the coupler code.


2.1.4 Time Stepping Method

The coupler is required to support either process split or time split advancement of the component models. This requirement is closely associated with the requirement contained in Section 2.2.5.

2.1.5 Computations

2.1.6 Grids

The coupler is required to support general grid shapes (not just logically rectangular grids). The coupler must have the ability to work around masked areas.


2.1.7 Fault Detection

The coupler must perform an initial coherence check to insure that all component models are set-up in the proper manner for the expected integration. The coupler must allow periodic coherence checks to assure proper synchronization. In situations where the component models fail, the coupler is required to have a mechanism to detect the failure and shutdown the entire system.

2.2 Computational Requirements

2.2.1 Target Platforms

The target platform for the coupler design will be clusters of RISC based multiprocessors. This architecture is a superset of traditional one processor per node MPPs (Cray-T3E) and large scalable shared memory systems (SGI Origin 2000). Examples of such clusters include the IBM SP and Compaq ES-40 clusters. Achieving high performance on both vector and RISC processors is complicated. Experience has shown that in many circumstances redundant pieces of code must be generated, which will necessarily slow the coupler development effort. Therefore, the goal of achieving efficient vector processing performance, although desirable, is not a requirement at this time.

2.2.2 Language

All of the general purpose libraries written for the coupler are required to have a Fortran 90 API or a Fortran 90 module interface. All physics packages written explicitly for the coupler are required to be written in Fortran 90.


2.2.3 Parallel Implementation

The coupler is required to give the user control in selecting pure message passing, pure shared memory multithreading, or hybrid parallel algorithms to take advantage of different platforms and the relative performance of parallel modes on those platforms.

2.2.4 Parallel Reproducibility

Under certain conditions, bit-for-bit reproducibility is required under the different parallel implementations listed in Section 2.2.3. At a minimum the coupler must give bitwise reproducibility when a statically loaded executable (same model with identical linked libraries) is rerun on the same machine at the same site on the same number of processors. It is noted that a strict requirement for bitwise parallel reproducibility may have a negative impact on performance.


2.2.5 Sequencing

The coupler functions will support both sequential and concurrent execution of the component models, in a fashion such that the user can configure the model/coupler with the sequencing method which makes the most sense for a particular problem/platform. This requirement is closely associated with the requirement contained in Section 2.1.4.

2.2.6 Performance

At a minimum the coupler is required to meet or exceed the performance of the current (March 2000) Climate System Model, Version 1.2 and Parallel Climate Model, Version 1.0 when configured (component model resolutions and communication intervals) similarly. That is, for concurrent execution, the coupler must at least outperform the most time intensive component model in terms of seconds per model day; for sequential execution, the coupler must not comprise more than 20% of the entire CCSM execution time. It is noted that the user can select a model/coupler configuration which easily can violate this requirement (such as configuring a shorter coupling interval requiring more mappings and communication).

2.2.7 Single Vs. Multiple Executables

The coupler is required to accommodate executing in an environment where the coupler and the component models comprise a single executable, or where the coupler and each component model run as separate executables. It is worth noting that single vs. multiple executables is independent of the sequencing method selected (e.g., concurrent execution can be accomplished with a single executable).

2.2.8 Processor Allocation

For flexibility, the coupler must be capable of running decomposed into an arbitrary numbers of processors. This is transparent to the component models.

2.2.9 Communications

Only communications between the coupler and the component models are allowed. Component model to component model communications are disallowed. Functionally, n coupler nodes should be able to communicate in parallel with m model nodes, for an arbitrary (n,m). Parallel communications between coupler and component models should be explored, developed and optimized, if possible.

2.2.10 Mapping

The regridder must be capable of performing arbitrary regriddings; i.e., any mapping from a source grid vector into a destination grid vector, representable by a transformation matrix, should be supported. The regridder must be capable of performing fast, efficient regriddings in parallel either through threading, or message passing, or both. The regridder must be able to perform a masked regridding operation.

2.2.11 I/O

The coupler must be able to read/write restart datasets that insure CCSM bit-for-bit restartability, and write history datasets consisting of user selected sets and subsets of data being exchanged between the component models. If possible, the NCAR/Unidata I/O Library will be used.

2.2.12 Fault Detection

Similar to the scientific functionality requirement in Section 2.1.7, the coupler is required to have a mechanism which will recognize in a rudimentary fashion that a fatal computational problem has arisen and perform the necessary operations to shutdown the entire model system.

2.3 Imposed Functionality Requirements

In order to meet the desired requirements of the coupler, it is apparent that the component models will need to have a priori knowledge of, and must be able to fulfill, some coupler requirements. A list of possible requirements of the component models, imposed by the coupler requirements, is given in this section. Note that the reverse is also true - the models may impose a requirement of the coupler. Any requirements of this latter type are unknown at the present time, but this document recognizes and notes the possibility.

2.3.1 Single vs. Multiple Executable

The component models are required to make accommodations for system configurations of either a single or multiple executable running environment. Furthermore, when the system is configured as concurrently running component models within a single executable, the component models must have the flexibility to execute within a designated processor space.

2.3.2 Fault Detection

The coupler is required to detect and/or react to a system problem, and therefore must receive appropriate fault detection handshaking signals from the component models. Thus, the component models are required to provide such signals. The component models may also be required to detect a coupler problem and act appropriately.

2.3.3 Handshaking

Other handshaking requirements between the coupler and the component models include:

This list is certainly not all-inclusive.


next up previous contents
Next: 3 Review Status Up: cpl6_reqdoc Previous: 1 Synopsis   Contents
csm@ucar.edu