The primary goal of processor scheduling is to assign tasks in a parallel program to processors, so as to minimize the execution time. Most existing approaches to processor scheduling for multiprocessors assume that the execution time of each task is fixed and is independent of processor scheduling. In this paper, we argue that the execution time of a given task is not fixed but is critically dependent on the performance of the caches, which have become an essential component of shared-memory multiprocessors and propose a scheduling algorithm, called data distribution constrained scheduling algorithm. The proposed scheduling algorithm tries to maximize the number of cache hits by scheduling the processors so that the task that brings a memory block into the cache and the tasks that subsequently access the same memory block are executed on the same processor.
[1]
CONSTANTINE D. POLYCHRONOPOULOS,et al.
Guided Self-Scheduling: A Practical Scheduling Scheme for Parallel Supercomputers
,
1987,
IEEE Transactions on Computers.
[2]
David A. Padua,et al.
Dependence graphs and compiler optimizations
,
1981,
POPL '81.
[3]
Peiyi Tang,et al.
Dynamic Processor Self-Scheduling for General Parallel Nested Loops
,
1987,
IEEE Trans. Computers.
[4]
Ken Kennedy,et al.
PFC: A Program to Convert Fortran to Parallel Form
,
1982
.
[5]
Ii C. D. Callahan.
A global approach to detection of parallelism
,
1987
.
[6]
Ron Cytron,et al.
Doacross: Beyond Vectorization for Multiprocessors
,
1986,
ICPP.
[7]
David L. Kuck,et al.
The Structure of Computers and Computations
,
1978
.