include sequencing info in the CIM

This page provides documentation for ticket:237.

(note: while I'm working I'll tag action items in bold)

From Rupert's email:

In earlier discussion it has been proposed that capturing the relative "sequence" of component models in a coupled model should be out of scope for the CIM (or at least core CIM). I think when people have talked about a sequence they are thinking of the "control flow" that calls component model science at the appropriate time i.e. implements any timestepping loops so they conform to the required coupled model behaviour.

However, it has also been proposed that one is able to specify a "lag" per connection and in fact the CIM now has this. In my view, lag implies a sequence and conversely a sequence implies a lag. Put another way, lag is the way OASIS sequence their component models. A sequence (i.e. defining a schedule and implementing this in control flow) however is more general than specifying a lag.

I believe that directly storing, or being able to derive (e.g. from a schedule), a value of lag is useful as it is used in OASIS3/4 coupled models. However, other coupling approaches, such as ESMF and BFG take a different approach to coupling component models. OASIS3/4 does not separate component model science code from timestepping control code (which contains the control flow code). In contrast ESMF (and BFG) do treat these separately. In ESMF a separate coupler component is used to perform the coupling and implement appropriate timestepping control code. In BFG the control flow is described in metadata and the appropriate code is generated.

I personally would like the ability to be able to express a schedule in the CIM (i.e. to define the science) and possibly an implementation of the schedule (to say how it was run). In fact it is required for BFG. This should allow us to describe ESMF and OASIS coupled models, but I suspect that will be considered to be part of the white in our Metafor egg, or even outside of the white!

What I am unsure about is how useful a concept lag is for coupled models other than OASIS. From a Computer Science perspective it has limitations (and possibly implementation implications as it is based on the idea of a tuple space) but it may be that it is a fundamental concept in ESM.

Anyone have any views?


Marie-Pierre and Sophie (March 5th, 2009):

Of course we do!

We agree on your view of sequence and lag, except with what you write in the last paragraph above. We think that the lag is not only a technical thingie for OASIS, it is a scientific concept that expresses how (with respect to the time line of the simulation) the coupling information provided by the source component is used by the target component.

We have nothing against including ability to be able to express a schedule in the CIM but this is in fact very very white for us!