Efficient static scheduling of loops on synchronous multiprocessors
This dissertation investigates efficient compile-time scheduling techniques for exploiting parallelism on synchronous multiprocessors. Synchronous multiprocessors, e.g. Very Long Instruction Word (VLIW) machines, are very effective in utilizing unstructured fine-grained parallelism in programs. The effectiveness of such machines is crucially dependent on the static compile-time analysis and detection of potential parallelism. The first part of the dissertation focuses on scheduling sequential loops on multiprocessors with multiple identical processor units. The problem of determining the maximal initiation rate for the execution of a sequential loop with uniform dependence distances on a synchronous multiprocessor is addressed and cast as an eigenvalue problem in a path algebra. A low-order polynomial algorithm for the determination of the optimal loop initiation rate is developed, and a schedule that exploits fine-grained parallelism and achieves the optimal initiation rate is developed under an idealized unbounded processor model. Next, the concepts developed above are extended to deal with perfectly-nested loops with uniform dependences. A strategy is developed to identify both the loop level and fine-grained expression level parallelism in nested loops, and to efficiently schedule such loops on synchronous multiprocessors. Loop scheduling techniques such as Do-Across, Wavefront scheduling, and fine-grained scheduling techniques such as loop unfolding are shown to be derivable within the presented framework.
- Research Organization:
- Ohio State Univ., Columbus, OH (USA)
- OSTI ID:
- 6038115
- Resource Relation:
- Other Information: Thesis (Ph.D)
- Country of Publication:
- United States
- Language:
- English
Similar Records
Self-scheduling, data synchronization, and program transformation for multiprocessor systems
The implementation of a parallelizing compiler for loosely-coupled multiprocessor systems
Related Subjects
PARALLEL PROCESSING
PROGRAMMING LANGUAGES
ALGORITHMS
ARRAY PROCESSORS
COMPUTER ARCHITECTURE
EIGENVALUES
MULTIPLICITY
OPTIMIZATION
TASK SCHEDULING
DATA PROCESSING
MATHEMATICAL LOGIC
PROCESSING
PROGRAMMING
990200* - Mathematics & Computers