DocumentCode
1486593
Title
FASTEST: a practical low-complexity algorithm for compile-time assignment of parallel programs to multiprocessors
Author
Kwok, Yu-Kwong ; Ahmad, Ishfaq
Author_Institution
Dept. of Electr. & Electron. Eng., Hong Kong Univ., Hong Kong
Volume
10
Issue
2
fYear
1999
fDate
2/1/1999 12:00:00 AM
Firstpage
147
Lastpage
159
Abstract
In the area of parallelizing compilers, considerable research has been carried out on data dependency analysis, parallelism extraction, as well as program and data partitioning. However, designing a practical, low complexity scheduling algorithm without sacrificing performance remains a challenging problem. A variety of heuristics have been proposed to generate efficient solutions but they take prohibitively long execution times for moderate size or large problems. In this paper, we propose an algorithm called FASTEST (Fast Assignment and Scheduling of Tasks using an Efficient Search Technique) that has O(e) time complexity, where e is the number of edges in the task graph. The algorithm first generates an initial solution in a short time and then refines it by using a simple but robust random neighborhood search. We have also parallelized the search to further lower the time complexity. We are using the algorithm in a prototype automatic parallelization and scheduling tool which compiles sequential code and generates parallel code optimized with judicious scheduling. The proposed algorithm is evaluated with several application programs and outperforms a number of previous algorithms by generating parallelized code with shorter execution times, while taking dramatically shorter scheduling times. The FASTEST algorithm generates optimal solutions for a majority of the test cases and close-to-optimal solutions for the rest
Keywords
application program interfaces; computational complexity; multiprocessing systems; parallelising compilers; processor scheduling; FASTEST; application programs; compile-time assignment; data dependency analysis; data partitioning; heuristics; low-complexity algorithm; multiprocessors; parallel programs; parallelism extraction; parallelized code; parallelizing compilers; prototype automatic parallelization; robust random neighborhood search; scheduling algorithm; scheduling tool; task graph; time complexity; Algorithm design and analysis; Computer Society; Data analysis; Dynamic scheduling; Iterative algorithms; Minimization methods; Parallel processing; Partitioning algorithms; Processor scheduling; Scheduling algorithm;
fLanguage
English
Journal_Title
Parallel and Distributed Systems, IEEE Transactions on
Publisher
ieee
ISSN
1045-9219
Type
jour
DOI
10.1109/71.752781
Filename
752781
Link To Document