• 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