A system and method for dynamic scheduling and allocation of resources to
parallel applications during the course of their execution. By
establishing well-defined interactions between an executing job and the
parallel system, the system and method support dynamic reconfiguration of
processor partitions, dynamic distribution and redistribution of data,
communication among cooperating applications, and various other monitoring
actions. The interactions occur only at specific points in the execution
of the program where the aforementioned operations can be performed
efficiently.