Asynchronous Iterative Methods for Multiprocessors
Journal of the ACM (JACM)
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM SIGAda Ada Letters
Abstraction Mechanisms and Language Design
Abstraction Mechanisms and Language Design
The efficient termination of Ada tasks in a multi-processor environment
ACM SIGAda Ada Letters
Efficient loop-level parallelism in Ada
TRI-Ada '91 Proceedings of the conference on TRI-Ada '91: today's accomplishments; tomorrow's expectations
Ada tasking for parallel computation: supporting fine-grained forall parallelism
WADAS '90 Proceedings of the seventh Washington Ada symposium on Ada
Hi-index | 0.00 |
We examine the suitability of Ada to a specific multiprocessor architecture, the NYU Ultracomputer. The Ultracomputer is an MIMD machine with shared memory, and a special hardware primitive, the fetch-and-add operation, with which non-blocking versions of well-known synchronization primitives can be implemented. We show that fetch-and-add can be used to implement some common Ada tasking idioms, and that well-known algorithms for MIMD machines find a natural description in Ada. Furthermore, Ada solutions implemented with fetch-and-add have fewer and smaller critical sections than previously presented versions. The fetch-and-add primitive also provides an efficient solution to the problem of initializing a number of identical tasks, and to the potentially expensive implementation of termination for large numbers of tasks. We conclude that the Ada tasking model "fits" well an MIMD architecture such as the Ultracomputer.