We present a strategy for dynamically schedule communicating processes of a parallel application onto a loosely coupled distributed system. As we must manage two criteria to schedule processes (the workload of the differents sites and the cost of the communication between processes), the algorithm proposed uses two types of agents (system agents and application agents). A system agent manages the workload of its site, an application agent reduces the IPC costs within its application. Our two types of agents cooperate and negociate to make a trade-off between the two criteria. Therefore, we describe the different cooperations needed via a two-layer model. An implementation of this strategy is also described and experimental results analysed. The results obtained justify certain of our design choices and show that the improvement provided by our scheduling algorithm is satisfactory.
The concept of a priority controlled module (PCM), which is intended to implement shared objects in a parallelism environment is presented. Semantics of a PCM are given using a temporal logic. Experiences adapting the inheritance mechanisms to the synchronization domain using the concept of a PCM are also described. Because PCM mainly relies on the separation between data abstraction and synchronization, either of these can be thought as a degree of freedom. Each degree of freedom appears as a reusable programming entity, and can be implemented using the concept of a class occurring in the object-oriented languages