Minutes of the wp3a-wp2c/4a meeting

Hamburg, February 21, 2002
Final version: 11/03/2002



 

A meeting gathering wp3a (coupler) and wp2c/4a (I/O) partners was organised as one of the Topic Sessions during the SSW meeting in Hamburg on February,21, 2002. The objective was to discuss the issue of a common  Model Interface Library for I/O and coupling data, also called "common Data Management Shell (DMS)". People who participated in the discussions are: from wp3a, Jean Latour (Fujitsu/FECIT), Rene Redler (NEC-CCRL), Sophie Valcke (CERFACS); from wp2c/4a, Jan Polcher (IPSL) and Mick Carter (Hadley Centre); and Nils Wedi from ECMWF.

Summary:

A list of common characteristics and a list of differences between I/O and coupling data were first established. Then, the classes of routines required for both types of data in the Model Interface Library were discussed. Finally, implementation details were discussed on how to group variables to send or receive at once, how to generate, for each component model, the list of available and requested data, and on how to ensure use of integers (and not character strings) as arguments for the Model Interface sending and receiving instructions.
In conclusion, it was decided that the I/O and coupler workpackage partners will first define separately their respective specifications for such a Model Interface Library. They will meet again in Toulouse on April 19th, 2002 to see how/if a common Model Interface Library could be established.


1- What do I/O and coupling data have in common

The following list of characteristics shared by both I/O and coupling data was established:


2- What are the differences between I/O and coupling data

The following list of differences was established:


3-Classes of routines required in the Model Interface library

A first list of classes of routines, required both for I/O and coupling data, in the Model Interface Library was discussed. These classes  are:


4- Discussion on how to group variables to send or receive at once

In the wp3a first suggestion of possible routines for the coupling Model  Interface library (see http://www.ccrl-nece.de/~redler/MTCI/), it was suggested that a specific instruction could be used in the model to send and receive grouped variables at once (PRISM_Update). It appears that this type of instruction could help reducing the memory requirement. The discussion came to the conclusion that this grouping should not be performed in the geophysical models as the optimal choice does not only depend on the sending model but also on the receiving side. It is only in the Model Interface library that the knowledge on the receiving model, will be available  ; therefore, it is in the Model Interface library that the grouping of variables should be decided and performed. This is already done by most I/O libraries (management of the write buffer) and thus allows to solve this problem without needing the intervention of the developer of the geophysical model. It is suggested that such an approach be also used for the coupler. It has to be verified with other wp3a developers not present at the meeting if this approach would be satisfying regarding memory and performance.
 


5- Discussion on how to generate the list of available and requested data

The principle of end-point data exchange supposes that a model performing a sending instruction in fact offers the data but does not know where it will go to, and that a model performing a receiving instruction in fact requests the data but does not know where the data will come from. Whether or not the sending and receiving instructions will effectively be fulfilled in one particular simulation must be decided by the user externally. The user also has to perform the matching between the different sending and receiving instructions, i.e. define source/target model (for coupling data) or the source/target file (for I/O data). This can be done through an ASCII configuration file generated through a GUI or any other appropriate mean. To make the appropriate choices and matchings, the user has to know the list of all data requested or made available by each component model, which we will call  the model "input and output option file". The following ways to proceed are possible:


6- Discussion on the sending and receiving instruction arguments
 

Different approaches can be used to identify coupling or I/O data in the sending and receiving instructions and activate them in the input and output configuration file. We will call "keyword" the data identificator, whether it is a string or an integer, and we will refer to the sending/receiving instructions as the PRISM_Send/PRISM_Recv.
For efficiency reasons, it is advisable to use integers keywords to identify the variables in the model and in the Model Interface library; we discuss here the current practice and other possible options.