Abstract
In Ada 2012, the language expanded its support for concurrency with the addition of the Synchronous Barriers library package to the Real-Time Systems annex[1]. This package provides a mechanism to synchronize a group of tasks after the number of blocked tasks reaches a specified count value. One use for this feature is to interleave sequential processing with concurrent or parallel processing. For this usage, two syncrhonous barrier objects can be utilized where one barrier manages the transition from parallel to sequential code, and the other barrier manages the transition back from sequential to parallel code. In general, performance can be improved by minimizing the amount of synchronization in an application. The more that threads of execution can proceed independentally without interference with other threads, the more likely that the available CPUs can focus on completing the independent tasks rather than spending time synchronizing with the other threads. A Synchronous Signal is a synchronization primitive that provides a similar abstraction as a Synchronous Barrier, except it can reduce the amount of synchronization needed by a factor of two. In addition, only one object is needed, to manage both transitions instead of two. In this paper, the abstraction is explored and an interface to use the abstraction is presented. Two forms of the abstraction are considered; a blocking form and a non-blocking form, and the performance measurements are reported and compared against Synchronous Barriers usage. Finally, these examples are also compared and considered for use in a Ravenscar environment.
- ISO/IEC, Ada Reference Manual, ISO/IEC 8652:2012(E), 2012Google Scholar
- A. Burns, A.J. Wellings. Synchronous Task Control and Synchronous Barriers, ACM SIGAda Letters, Volume 36 Issue 1, June 2016 Google Scholar
Digital Library
- A. Burns, A.J. Wellings. Concurrent and Real-Time Programming in Ada, pp xxx-xxx Google Scholar
Digital Library
- B. Moore. Parallelism Generics for Ada 2005 and Beyond., SIGAda'10 Proceedings of the ACM SIGAda annual conference, October 2010. Google Scholar
Digital Library
- B. Moore, Paraffin source libraries. http://sourceforge.net/projects/paraffin/?source=directoryGoogle Scholar
- F. Chouteau, J. F. Ruiz. Design and Implementation of a Ravenscar Extension for Multiprocessors. In: Reliable Software Technologies - Ada-Europe 2011, pp 31-45 Google Scholar
Digital Library
Recommendations
Efficient synchronous snapshots
PODC '04: Proceedings of the twenty-third annual ACM symposium on Principles of distributed computingA snapshot is an important object in distributed computing whose implementation in asynchronous systems has been studied extensively. It consists of a collection of m >1 components, each storing a value, and supports two atomic operations: an UPDATE of ...
Deadlock Analysis of Synchronous Message-Passing Programs
PDSE '99: Proceedings of the International Symposium on Software Engineering for Parallel and Distributed SystemsReachability analysis of a concurrent program involves the derivation of states of the program and the detection of deadlocks and other types of faults. To perform reachability analysis of a concurrent program P, the number of instances of each process ...
Bulk Synchronous Parallel: Practical Experience with a Model for Parallel Computing
PACT '96: Proceedings of the 1996 Conference on Parallel Architectures and Compilation TechniquesValiant proposed the Bulk Synchronous Parallel (BSP) model as a possible model for parallel computing. He refers to BSP as a ``bridging'' model, being applicable to both system and algorithm design. The model allows hardware and software design to ...






Comments