skip to main content
research-article

Synchronous Signals: An Abstraction for Interleaving Sequential and Parallel Code

Published:23 July 2018Publication History
Skip Abstract Section

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.

References

  1. ISO/IEC, Ada Reference Manual, ISO/IEC 8652:2012(E), 2012Google ScholarGoogle Scholar
  2. A. Burns, A.J. Wellings. Synchronous Task Control and Synchronous Barriers, ACM SIGAda Letters, Volume 36 Issue 1, June 2016 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Burns, A.J. Wellings. Concurrent and Real-Time Programming in Ada, pp xxx-xxx Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. Moore. Parallelism Generics for Ada 2005 and Beyond., SIGAda'10 Proceedings of the ACM SIGAda annual conference, October 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. B. Moore, Paraffin source libraries. http://sourceforge.net/projects/paraffin/?source=directoryGoogle ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGAda Ada Letters
    ACM SIGAda Ada Letters  Volume 38, Issue 1
    June 2018
    65 pages
    ISSN:1094-3641
    DOI:10.1145/3241950
    Issue’s Table of Contents

    Copyright © 2018 Author

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 23 July 2018

    Check for updates

    Qualifiers

    • research-article
  • Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!