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
- 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
990200* -- Mathematics & Computers
ALGORITHMS
ARRAY PROCESSORS
COMMUNICATIONS
COMPUTER ARCHITECTURE
COMPUTERS
DATA PROCESSING
DATA TRANSMISSION
DIGITAL COMPUTERS
MATHEMATICAL LOGIC
PARALLEL PROCESSING
PERFORMANCE
PROCESSING
PROGRAMMING
SUPERCOMPUTERS
SYNCHRONIZATION
TASK SCHEDULING