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.