skip to main content
research-article

Parallelism generics for Ada 2005 and beyond

Published:24 October 2010Publication History
Skip Abstract Section

Abstract

The Ada programming language is seemingly well-positioned to take advantage of emerging multi-core technologies. While it has always been possible to write parallel algorithms in Ada, there are certain classes of problems however, where the level of effort to write parallel algorithms outweighs the ease and simplicity of a sequential approach. This can result in lost opportunities for parallelism and slower running software programs. Languages such as Cilk++ and OpenMB provide expressive mechanisms to add parallelism to code using a C++ based syntax by adding special syntactic directives where parallelism is desired. This paper explores Ada's concurrency features to see whether it is possible to easily inject similar iterative and recursive parallelism to code written in Ada, without having to resort to special language extensions or non-standard language features. This paper identifies a "work-seeking" technique, which can be viewed as a form of compromise between work-sharing and work-stealing, two other existing strategies. The paper presents performance results to illustrate the benefits of use for the generics and goes on to suggest how parallelism pragmas could possibly be added to the Ada language to further facilitate writing parallel applications.

References

  1. Frigo M., Halpern P., Leiserson C., and Lewin-Berlin S., Reducers and Other Cilk++ Hyperobjects. ACM SPAA '09 (2009) Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Burns, A., Wellings A., Concurrent and Real-Time Programming in Ada, Cambridge University Press, 2007 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Taft, S.T., Duff, R. A., Bruckardt, R.L. And Plödereder, E. Eds (2000). Consolidated Ada Reference Manual. LNCS 2219, Springer-Verlag Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Barney Blaise, Lawrence Livermore National Laboratory, https://computing.llnl.gov/tutorials/openMP/#WorkSharing (Sept 2010)Google ScholarGoogle Scholar
  5. Kaiser, C., Fradat-Peyre, J-F., Évangelista, S., Rousseau P., C# and Ada Monitors queuing policies: a case study and its Ada refinement. ACM Sigada Ada Letters, 24, 2, pp. 23--37 August 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Association for Computing Machinery (ACM) SigAda, ASIS Working Group, http://www.sigada.org/wg/asiswg/, Sept 2010Google ScholarGoogle Scholar
  7. Fox, G., Williams, R., Messina G., Parallel Computing Works!, ISBN 1-55860-253-4 Morgan Kaufmann Publishers, Inc. 1994Google ScholarGoogle Scholar
  8. Walker J., Red Black Trees, http://www.eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx (Aug 2010)Google ScholarGoogle Scholar
  9. Menabrea, L.F., Lovelace A., Sketch of the Analytical Engine Invented by Charles Babbage, Bibliothèque Universelle de Genève, October, 1842, No. 82Google ScholarGoogle Scholar
  10. Kaneko M., The Akiyama-Tanigawa algorithm for Bernoulli Numbers, Journal of Integer Sequences, Vol 3 (2000), Article 00.2.9Google ScholarGoogle Scholar
  11. Free Software Foundation, GMP, http://gmplib.org, Sept 2010Google ScholarGoogle Scholar

Index Terms

  1. Parallelism generics for Ada 2005 and beyond

                    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 30, Issue 3
                      SIGAda 2010
                      December 2010
                      63 pages
                      ISSN:1094-3641
                      DOI:10.1145/1879097
                      Issue’s Table of Contents
                      • cover image ACM Conferences
                        SIGAda '10: Proceedings of the ACM SIGAda annual international conference on SIGAda
                        October 2010
                        90 pages
                        ISBN:9781450300278
                        DOI:10.1145/1879063

                      Copyright © 2010 ACM

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 24 October 2010

                      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!