next up previous contents
Next: Design of Converse Up: Interoperability among parallel languages Previous: Concurrency within a Process   Contents


Control Regime

Another related aspect is the control regime for a language, which specifies how and when control transfers from one program module to another within a single process. Modules interact via explicit and implicit control regimes. In the explicit control regime, (as described in Figure 2.1(a)) the transfer of control from module to module is explicitly coded in the application program in the form of function calls. Moreover, at a given time, all processes are usually executing code in the same module. Thus all processors execute modules from different languages in different, non-overlapping phases. All processors transfer control to the next module only when the current module has completed all its work -- there are usually no outstanding messages. This control regime is suitable for languages that have no concurrency within a process.

Figure 2.1: Control regimes for parallel programs
\includegraphics[width=4in]{figures/regime}

In the implicit control regime (Figure 2.1(b)), different parallel software components execute in an overlapped manner, so that entities in different modules can be simultaneously active on different processes. The transfer of control from module to module is implicit. Rather than being decided only by the application program, it may be decided dynamically by a scheduling policy in the runtime system. This regime allows for adaptivity in execution of application code with a view to providing maximal overlap of modules for reducing idle time. Thus, when a thread in one module blocks, code from another module can be executed during that otherwise idle time. The implicit control regime is suitable for languages with concurrent objects or multi-threaded languages.


next up previous contents
Next: Design of Converse Up: Interoperability among parallel languages Previous: Concurrency within a Process   Contents
Milind Bhandarkar 2002-06-12