Welcome to the new version of CaltechAUTHORS. Login is currently restricted to library staff. If you notice any issues, please email coda@library.caltech.edu
Published November 1995 | public
Book Section - Chapter

Performance of a high-level parallel programming layer defined on top of the Ada tasking model

Abstract

In earlier work, we proposed extending Ada with a high-level parallel programming layer consisting of three pragmas that indicate where standard sequential constructs can be executed in parallel without changing the sequential semantics of a program. The three pragmas specify: {i) parallelizable sequences of statements, (ii) parallelizable for-loop statements, and (iii) single-assignment types for synchronization. A precise definition of these pragmas was given by means of transformations to standard Ada tasking constructs. In this paper, we improve our definition of the parallel programming layer and demonstrate that the pragmas can be implemented efficiently on top of an existing Ada compiler by straightforward preprocessing using the defining transformations. We present three simple parallel programs that exhibit good speedups over sequential programs, when executed on a multiprocessor computer. Development of these programs was considerably easier than the direct use of Ada tasking, because the parallel programs are identical to equivalent sequential programs except for the added pragmas.

Additional Information

© 1995 ACM. Thank you to the members of the Compositional Systems Group of the Computer Science Department at Caltech for their discussions and suggestions throughout this research. Thank you to the GNAT team and their sponsors for their timely work in providing a valuable resource to the entire computing community. Thanks also to the Ada group at SGI, particularly Tom Quiggle and Wes Embry, for making their compiler and multiprocessor computer available for these performance experiments.

Additional details

Created:
August 20, 2023
Modified:
October 24, 2023