skip to main content
10.1145/2663171.2663181acmconferencesArticle/Chapter ViewAbstractPublication PagesadaConference Proceedingsconference-collections
research-article

Safe parallel programming in ada with language extensions

Published: 18 October 2014 Publication History

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.
[2]
E. W. Dijkstra. 1965. Cooperating Sequential Processes, Technical Report Ewd-123. Technical Report.
[3]
P. B. Hansen. 1973. Concurrent Programming Concepts. ACM Comput. Surv. 5, 4 (December 1973), 223--245.
[4]
C. A. R. Hoare (1978). "Communicating sequential processes". Communications of the ACM 21 (8): 666--677.
[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.
[6]
M. Hind, E. Schonberg, "Efficient Loop-Level Parallelism in Ada", Proceedings of TriAda 91, October 1991.
[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.
[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.
[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.
[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.
[11]
Intel Corporation, Cilk Plus, https://software.intel.com/en-us/intel-cilk-plus
[12]
OpenMP Architecture Review Board, "OpenMP Application Program Interface", Version 4.0, July 2013
[13]
OpenCL (Open Computing Language), http://www.khronos.org/opencl
[14]
NVIDIA, "NVIDIA CUDA Compute Unified Device Architecture", Version 2.0, 2008
[15]
CPLEX, C Parallel Language EXtensions study group, archives at http://www.open-std.org/mailman/listinfo/cplex
[16]
Working Draft, Technical Specification for C++ Extensions for Parallelism, available at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3960.pdf
[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-2014
[18]
Google Corporation, The Go Programming Language, http://golang.org/
[19]
Mozilla Research, The Rust Programming Language, http://www.rust-lang.org
[20]
ParaSail - Parallel Specification and Implementation Language, http://parasail-programming-language.blogspot.com
[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.
[22]
W. Korfhage, A. P. Goldberg, "Hermes Language Experiences," Software - Practice And Experience, Vol. 25(4), 389--402 (April 1995).
[23]
ISO IEC 8652:2012. Programming Languages and their Environments - Programming Language Ada. International Standards Organization, Geneva, Switzerland, 2012
[24]
J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003.

Cited By

View all
  • (2024)Real-Time Parallel Programming for Homogeneous Multicores2024 IEEE 14th International Symposium on Industrial Embedded Systems (SIES)10.1109/SIES62473.2024.10768043(1-9)Online publication date: 23-Oct-2024
  • (2018)Converging safety and high-performance domains: Integrating OpenMP into Ada2018 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE.2018.8342162(1021-1026)Online publication date: Mar-2018
  • (2018)Combining the tasklet model with OpenMPACM SIGAda Ada Letters10.1145/3241950.324195238:1(14-18)Online publication date: 23-Jul-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 October 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. ada
  2. multi-core
  3. programming language
  4. safe parallelism

Qualifiers

  • Research-article

Conference

HILT '14
Sponsor:

Acceptance Rates

HILT '14 Paper Acceptance Rate 12 of 20 submissions, 60%;
Overall Acceptance Rate 27 of 48 submissions, 56%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)2
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Real-Time Parallel Programming for Homogeneous Multicores2024 IEEE 14th International Symposium on Industrial Embedded Systems (SIES)10.1109/SIES62473.2024.10768043(1-9)Online publication date: 23-Oct-2024
  • (2018)Converging safety and high-performance domains: Integrating OpenMP into Ada2018 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE.2018.8342162(1021-1026)Online publication date: Mar-2018
  • (2018)Combining the tasklet model with OpenMPACM SIGAda Ada Letters10.1145/3241950.324195238:1(14-18)Online publication date: 23-Jul-2018
  • (2018)Fallacies of AgreementACM Transactions on Computer-Human Interaction10.1145/318216825:3(1-49)Online publication date: 28-Jun-2018
  • (2018)The next phase in the digital revolutionCommunications of the ACM10.1145/317355061:2(54-63)Online publication date: 23-Jan-2018
  • (2018)Auth ‘n’ ScanProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/31611891:4(1-27)Online publication date: 8-Jan-2018
  • (2018)iTourProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/31611671:4(1-27)Online publication date: 8-Jan-2018
  • (2018)ObjectSkinProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/31611651:4(1-23)Online publication date: 8-Jan-2018
  • (2018)Elements of the theory of dynamic networksCommunications of the ACM10.1145/315669361:2(72-72)Online publication date: 23-Jan-2018
  • (2016)Session SummaryACM SIGAda Ada Letters10.1145/2971571.297158336:1(83-90)Online publication date: 13-Jul-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media