skip to main content
research-article

Safe parallel programming in ada with language extensions

Published:18 October 2014Publication History
Skip Abstract Section

Abstract

The increased presence of parallel computing platforms brings concerns to the general purpose domain that were previously prevalent only in the specific niche of high-performance computing. As parallel programming technologies become more prevalent in the form of new emerging programming languages and extensions of existing languages, additional safety concerns arise as part of the paradigm shift from sequential to parallel behaviour.

In this paper, we propose various syntax extensions to the Ada language, which provide mechanisms whereby the compiler is given the necessary semantic information to enable the implicit and explicit parallelization of code. The model is based on earlier work, which separates parallelism specification from concurrency implementation, but proposes an updated syntax with additional mechanisms to facilitate the development of safer parallel programs.

References

  1. G. M. Amdahl. Validity of the Single-Processor Approach to Achieving Large Scale Computing Capabilities. In AFIPS Conference Proceedings, pages 483--485, 1967. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. W. Dijkstra. 1965. Cooperating Sequential Processes, Technical Report Ewd-123. Technical Report. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. P. B. Hansen. 1973. Concurrent Programming Concepts. ACM Comput. Surv. 5, 4 (December 1973), 223--245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. A. R. Hoare (1978). "Communicating sequential processes". Communications of the ACM 21 (8): 666--677. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. H. G. Mayer, S. Jahnichen, "The data-parallel Ada run-time system, simulation and empirical results", Proceedings of Seventh International Parallel Processing Symposium, April 1993, Newport, CA, USA, pp. 621 - 627. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Hind, E. Schonberg, "Efficient Loop-Level Parallelism in Ada", Proceedings of TriAda 91, October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Thornley, "Integrating parallel dataflow programming with the Ada tasking model". Proceedings of TRI-Ada '94, Charles B. Engle, Jr. (Ed.). ACM, New York, NY, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Michell, B. Moore, L. M. Pinho, "Tasklettes - a Fine Grained Parallelism for Ada on Multicores", International Conference on Reliable Software Technologies - Ada-Europe 2013, LNCS 7896, Springer, 2013.Google ScholarGoogle Scholar
  9. S. Michell, B. Moore, L. M. Pinho, "Real-Time Programming on Accelerator Many-Core Processors", Proceedings of the High-Integrity Language Technologies conference (HILT 2013), November 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. L. M. Pinho, B. Moore, S. Michell, "Parallelism in Ada: status and prospects", International Conference on Reliable Software Technologies - Ada-Europe 2014, LNCS 8454, Springer, 2014.Google ScholarGoogle Scholar
  11. Intel Corporation, Cilk Plus, https://software.intel.com/en-us/intel-cilk-plusGoogle ScholarGoogle Scholar
  12. OpenMP Architecture Review Board, "OpenMP Application Program Interface", Version 4.0, July 2013Google ScholarGoogle Scholar
  13. OpenCL (Open Computing Language), http://www.khronos.org/openclGoogle ScholarGoogle Scholar
  14. NVIDIA, "NVIDIA CUDA Compute Unified Device Architecture", Version 2.0, 2008Google ScholarGoogle Scholar
  15. CPLEX, C Parallel Language EXtensions study group, archives at http://www.open-std.org/mailman/listinfo/cplexGoogle ScholarGoogle Scholar
  16. Working Draft, Technical Specification for C++ Extensions for Parallelism, available at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3960.pdfGoogle ScholarGoogle Scholar
  17. D. C. Schmidt, T. H. Harrison, and N. Pryce, "Thread-specific Storage: an Object Behavioral Pattern for Efficiently Accessing per-Thread State," C++ Gems II, (Robert Martin, ed.), SIGS, NY, 1999; http://www.dre.vanderbilt.edu/~schmidt/PDF/TSS-pattern.pdf, retrieved 11-Jun-2014Google ScholarGoogle Scholar
  18. Google Corporation, The Go Programming Language, http://golang.org/Google ScholarGoogle Scholar
  19. Mozilla Research, The Rust Programming Language, http://www.rust-lang.orgGoogle ScholarGoogle Scholar
  20. ParaSail - Parallel Specification and Implementation Language, http://parasail-programming-language.blogspot.comGoogle ScholarGoogle Scholar
  21. B. Liskov and L. Shrira, Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems. Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation; Atlanta, Georgia, United States, pp. 260--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. W. Korfhage, A. P. Goldberg, "Hermes Language Experiences," Software - Practice And Experience, Vol. 25(4), 389--402 (April 1995). Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. ISO IEC 8652:2012. Programming Languages and their Environments - Programming Language Ada. International Standards Organization, Geneva, Switzerland, 2012Google ScholarGoogle Scholar
  24. J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Safe parallel programming in ada with language extensions

    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 34, Issue 3
      HILT '14
      December 2014
      93 pages
      ISSN:1094-3641
      DOI:10.1145/2692956
      Issue’s Table of Contents
      • cover image ACM Conferences
        HILT '14: Proceedings of the 2014 ACM SIGAda annual conference on High integrity language technology
        October 2014
        116 pages
        ISBN:9781450332170
        DOI:10.1145/2663171

      Copyright © 2014 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 18 October 2014

      Check for updates

      Qualifiers

      • research-article

    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!