Self-scheduling, data synchronization, and program transformation for multiprocessor systems
This dissertation first concentrates on two important software issues for large multiprocessor systems: processor scheduling and data synchronization. Self-scheduling, and efficient dynamic heuristic scheduling, is a practical solution to the scheduling problem of multiprocessor systems. The author proposes several self-scheduling schemes which can be used by a compiler to generate self-scheduling object codes for parallel programs. Since busy-waiting is used to enforce cross-iteration data dependences, deadlocks in self-scheduling are possible. He identifies the conditions that allow deadlock-free self-scheduling for different self-scheduling models and propose the use of an appropriate scheduling order for allocating processors to prevent deadlocks. Self-scheduling order has significant impact on the performance of parallel loops with cross-iteration data dependences. He proposes the shortest-delay self-scheduling (SDSS) order based on Doacross delays determined by cross-iteration data dependences. He shows by simulation that SDSS can offer near-optimal performance in most cases. A compile-time program transformation for SDSS is also presented. Data synchronization is necessary to enforce cross-iteration data dependences. He proposes a set of data-level synchronization instructions to support data synchronization. Compiler algorithms for generating these data-level synchronization instructions for different types of subscript functions are presented. The last part of the dissertation addresses an architecture issue of large multiprocessor systems: hot-spot contention.
- Research Organization:
- Illinois Univ., Urbana, IL (USA)
- OSTI ID:
- 5814859
- Resource Relation:
- Other Information: Thesis (Ph. D.)
- Country of Publication:
- United States
- Language:
- English
Similar Records
Deadlock prevention in processor self-scheduling for parallel nested loops
On synchronization and scheduling for multiprocessors
Related Subjects
ARRAY PROCESSORS
DATA TRANSMISSION
TASK SCHEDULING
ALGORITHMS
COMPUTER ARCHITECTURE
PARALLEL PROCESSING
PERFORMANCE
SUPERCOMPUTERS
SYNCHRONIZATION
COMMUNICATIONS
COMPUTERS
DATA PROCESSING
DIGITAL COMPUTERS
MATHEMATICAL LOGIC
PROCESSING
PROGRAMMING
990200* - Mathematics & Computers