DocumentCode
875800
Title
Trapezoid self-scheduling: a practical scheduling scheme for parallel compilers
Author
Tzen, Ten H. ; Ni, Lionel M.
Author_Institution
Dept. of Comput. Sci., Michigan State Univ., East Lansing, MI, USA
Volume
4
Issue
1
fYear
1993
fDate
1/1/1993 12:00:00 AM
Firstpage
87
Lastpage
98
Abstract
A practical processor self-scheduling scheme, trapezoid self-scheduling, is proposed for arbitrary parallel nested loops in shared-memory multiprocessors. Generally, loops are the richest source of parallelism in parallel programs. To dynamically allocate loop iterations to processors, one may achieve load balancing among processors at the expense of run-time scheduling overhead. By linearly decreasing the chunk size at run time, the best tradeoff between the scheduling overhead and balanced workload can be obtained in the proposed trapezoid self-scheduling approach. Due to its simplicity and flexibility, this approach can be efficiently implemented in any parallel compiler. The small and predictable number of chores also allow efficient management of memory in a static fashion. The experiments conducted in a 96-node Butterfly GP-1000 clearly show the advantage of the trapezoid self-scheduling over other well-known self-scheduling approaches
Keywords
parallel programming; program compilers; scheduling; shared memory systems; Butterfly GP-1000; chunk size; dynamic allocation; load balancing; loop iterations; memory management; parallel compilers; parallel nested loops; parallel programs; processor self-scheduling; run-time scheduling overhead; shared-memory multiprocessors; trapezoid self-scheduling; Computer science; Dynamic scheduling; Load management; Memory management; Multiprocessing systems; Parallel languages; Parallel processing; Processor scheduling; Programming profession; Runtime;
fLanguage
English
Journal_Title
Parallel and Distributed Systems, IEEE Transactions on
Publisher
ieee
ISSN
1045-9219
Type
jour
DOI
10.1109/71.205655
Filename
205655
Link To Document