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.
- G. M. Amdahl. Validity of the Single-Processor Approach to Achieving Large Scale Computing Capabilities. In AFIPS Conference Proceedings, pages 483--485, 1967. Google Scholar
Digital Library
- E. W. Dijkstra. 1965. Cooperating Sequential Processes, Technical Report Ewd-123. Technical Report. Google Scholar
Digital Library
- P. B. Hansen. 1973. Concurrent Programming Concepts. ACM Comput. Surv. 5, 4 (December 1973), 223--245. Google Scholar
Digital Library
- C. A. R. Hoare (1978). "Communicating sequential processes". Communications of the ACM 21 (8): 666--677. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Hind, E. Schonberg, "Efficient Loop-Level Parallelism in Ada", Proceedings of TriAda 91, October 1991. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- Intel Corporation, Cilk Plus, https://software.intel.com/en-us/intel-cilk-plusGoogle Scholar
- OpenMP Architecture Review Board, "OpenMP Application Program Interface", Version 4.0, July 2013Google Scholar
- OpenCL (Open Computing Language), http://www.khronos.org/openclGoogle Scholar
- NVIDIA, "NVIDIA CUDA Compute Unified Device Architecture", Version 2.0, 2008Google Scholar
- CPLEX, C Parallel Language EXtensions study group, archives at http://www.open-std.org/mailman/listinfo/cplexGoogle Scholar
- Working Draft, Technical Specification for C++ Extensions for Parallelism, available at http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3960.pdfGoogle Scholar
- 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 Scholar
- Google Corporation, The Go Programming Language, http://golang.org/Google Scholar
- Mozilla Research, The Rust Programming Language, http://www.rust-lang.orgGoogle Scholar
- ParaSail - Parallel Specification and Implementation Language, http://parasail-programming-language.blogspot.comGoogle Scholar
- 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 Scholar
Digital Library
- W. Korfhage, A. P. Goldberg, "Hermes Language Experiences," Software - Practice And Experience, Vol. 25(4), 389--402 (April 1995). Google Scholar
Digital Library
- ISO IEC 8652:2012. Programming Languages and their Environments - Programming Language Ada. International Standards Organization, Geneva, Switzerland, 2012Google Scholar
- J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2003. Google Scholar
Digital Library
Index Terms
Safe parallel programming in ada with language extensions
Recommendations
Safe parallel programming in ada with language extensions
HILT '14: Proceedings of the 2014 ACM SIGAda annual conference on High integrity language technologyThe 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 ...
Language Design for Program Manipulation
The design of procedural and object-oriented programming languages is considered with respect to how easily programs written in those languages can be formally manipulated. Current procedural languages such as Pascal, Modula-2 and Ada; generally support ...
Augmenting Ada for SIMD Parallel Processing
Special issue on COMPSAC 1982 and 1983In order to program SIMD (single instruction stream-multiple data stream) parallel machines used for tasks such as speech and image processing, a language with explicit parallel constructs is often desirable. The language Ada, developed by the ...







Comments