On synchronization and scheduling for multiprocessors
Although multiprocessors with hundreds of processors are commercially available, programming these machines for effective utilization of the available hardware is a nontrivial problem. The major problems include the decomposition of a program into processes, and the synchronizing and scheduling of these tasks. In this dissertation techniques are developed for the synchronization and scheduling of computations. An efficient algorithm to reduce synchronization costs in the parallel execution of an imperative program is also presented. In the first part of the dissertation an efficient algorithm to remove the redundant dependences are determined by determining redundant dependences at a node. Redundancy is not necessarily uniform in a doubly nested loop. A sufficient condition for uniformity of redundancy in a doubly nested loop is developed. The second part of the dissertation develops a run-time dependence analysis algorithm to determine all data-dependences in a program. This algorithm executes a skeleton of the program in parallel and generates the reference pattern to each array element. The reference pattern generated is useful in synchronization and scheduling of processes. A synchronization scheme is presented that uses run-time dependence analysis if necessary. The third part of the dissertation focuses on the scheduling of processes. A dynamic scheduling scheme called pre-synchronized scheduling is developed. This scheme is evaluated on an Encore multiprocessor and a Cray-XMP supercomputer.
- Research Organization:
- Ohio State Univ., Columbus, OH (United States)
- OSTI ID:
- 5918933
- Country of Publication:
- United States
- Language:
- English
Similar Records
Self-scheduling, data synchronization, and program transformation for multiprocessor systems
Processor self-scheduling for multiple-nested parallel loops