SCHEDULING TASK SYSTEMS WITH RESOURCES
SCHEDULING TASK SYSTEMS WITH RESOURCES
Identifying refactoring opportunities by identifying dependency cycles
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
Hi-index | 0.00 |
Parallel compilation—compiling independent Ada units or files in parallel—offers a potentially enormous savings in the total compilation time of a program or library. The speedup realized depends primarily on the inter-unit dependency structure and the number of processors available.We have developed a tool, AdaExpress™, which exploits the opportunities for parallelizing compilations that are inherent in Ada libraries. AdaExpress is currently targeted to a Sequent Symmetry™ multiprocessor environment. The compilation engine is a Sequent Ada compiler, a Software Leverage product that is derived from the Verdix Ada Development System (VADS®).AdaExpress automatically determines Ada dependencies from sources. It then applies scheduling heuristics to the dependency structure to obtain a schedule with good, though suboptimal, overall compilation time. AdaExpress implements this schedule as streams of parallel compilation processes.We present the details of AdaExpress's graph-based scheduling algorithm. We also give an example using AdaExpress on an actual program library, and we show the speedup achieved with four processors.