You are here: Overview > Key Concepts > Dynamic Coupling

Dynamic Coupling

With a static coupler, all the coupled programs have to start simultaneously at the beginning of the simulation. Therefore, they lock their memory and CPU resources from the beginning to the end of the application.

In PALM, we introduced the dynamic coupling approach: a coupled component can be launched and can release resources upon termination at any moment during the simulation. The originality of this coupler resides in the faculty of describing complex coupling algorithms. Programs, parallel or not, can be executed in loops or under logical conditions. Computing resources such as the required memory and the number of concurrent processors, are handled by the PALM coupler. A component of the coupled system starts only when it is active in the algorithm. For the rest of the time it can release memory and processors. Notice that the dynamic resource management is bound to a static allocation: the coupler never goes beyond the total amount of available resources set by the user.

A PALM application can be described as a set of computational units arranged in a coupling algorithm. The different units are controlled by conditional and iterative constructs and belong to algorithmic sequences called computational branches. A branch is structured like a program in a high level programming language: it allows the definition of sequential algorithms. Inside a branch, the coupled independent programs, the units, are invoked as if they were subroutines of the branch program. The transformation of computational independent code into a PALM unit is almost straightforward, provided that the user can access the code sources.

The exchange of information between the components take into account the volatility of the units: even if a program has ended, PALM grants that the data it produced remain accessible for all the units that could require them later.

Back to top