A parallel programming model for ada

Over the last three decades, computer architects have been able to achieve an increase in performance for single processors by, e.g., increasing clock speed, introducing cache memories and using instruction level parallelism. However, because of power consumption and heat dissipation constraints, this trend is going to cease. In recent times, hardware engineers have instead moved to new chip architectures with multiple processor cores on a single chip. With multi-core processors, applications can complete more total work than with one core alone. To take advantage of multi-core processors, parallel programming models are proposed as promising solutions for more effectively using multi-core processors. This paper discusses some of the existent models and frameworks for parallel programming, leading to outline a draft parallel programming model for Ada.

[1]  Stefan Jähnichen,et al.  The data-parallel Ada run-time system, simulation and empirical results , 1993, [1993] Proceedings Seventh International Parallel Processing Symposium.

[2]  John Thornley Declarative Ada: parallel dataflow programming in a familiar context , 1995, CSC '95.

[3]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[4]  John Thornley Integrating parallel dataflow programming with the Ada tasking model , 1994, TRI-Ada '94.

[5]  James R. Larus,et al.  Software and the Concurrency Revolution , 2005, ACM Queue.

[6]  Charles E. Leiserson,et al.  The Cilk++ concurrency platform , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[7]  Matteo Frigo,et al.  The implementation of the Cilk-5 multithreaded language , 1998, PLDI.

[8]  Ami Marowka Parallel computing on any desktop , 2007, CACM.

[9]  Edmond Schonberg,et al.  Efficient loop-level parallelism in Ada , 2011, TRI-Ada '91.

[10]  Brad J. Moore Parallelism generics for Ada 2005 and beyond , 2010, SIGAda.

[11]  Alan Burns,et al.  Dispatching Domains for Multiprocessor Platforms and Their Representation in Ada , 2010, Ada-Europe.

[12]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[13]  Doug Lea,et al.  A Java fork/join framework , 2000, JAVA '00.

[14]  Akinori Yonezawa,et al.  StackThreads/MP: integrating futures into calling standards , 1999, PPoPP '99.