Parallel compilation of Ada units

  • Authors:
  • B. Cockerham

  • Affiliations:
  • Software Leverage, Inc., 485 Massachusetts Avenue, Arlington, Massachusetts

  • Venue:
  • TRI-Ada '88 Proceedings of the conference on TRI-Ada '88
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.