Efficient loop-level parallelism in Ada

Michael Hind, Edmond Schonberg · 1991

Parallelismin scientific applications can most often be found at the loop level.Although Ada supports parallelism via the task construct, its coarseness renders it unsuitable for this ligM- rueight parallelism.In this work we propose Ada constructs to achieve efficient looplevel parallelism in ANSI-Ada.This is accomplished in two steps.First, we present an idiom that allows the specification of light-weight tasks.Second, we give an efficient implementation of thk idiom that performs better than a standard Ada task.In addition, we present an idiom that makes the fetch ~nd.add synchronization primitive available at the Ada level.Our implementation of this idiom is more efficient in both time and space than previous results.In addition to providing universal synchronization, using fetch-and-add simplifies program analysis (e.g.proving the absence of race conditions in the implementation of a parallel algorithm ).Since all of these idioms are written in standard Ada, they maintain the portabfity that is central to the mandated uses of the language.

Read the paper · More papers on PaperTik