Design patterns percolating to parallel programming framework implementation

Structured parallel programming is recognised as a viable and effective means of tackling parallel programming problems. Recently, a set of simple and powerful parallel building blocks ($$\mathsf{RISC\text{- }pb^2l}$$RISC-pb2l) has been proposed to support modelling and implementation of parallel frameworks. In this work we demonstrate how that same parallel building block set may be used to model both general purpose parallel programming abstractions, not usually listed in classical skeleton sets, and more specialized domain specific parallel patterns. We show how an implementation of $$\mathsf{RISC\text{- }pb^2l}$$RISC-pb2l can be realised via the FastFlow framework and present experimental evidence of the feasibility and efficiency of the approach.

[1]  Mario Leyton,et al.  Skandium: Multi-core Programming with Algorithmic Skeletons , 2010, 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing.

[2]  Timothy G. Mattson,et al.  Patterns for parallel programming , 2004 .

[3]  Marco Danelutto,et al.  Map, reduce and mapreduce, the skeleton way , 2010, ICCS.

[4]  Marco Danelutto QoS in parallel programming through application managers , 2005, 13th Euromicro Conference on Parallel, Distributed and Network-Based Processing.

[5]  Dana Petcu,et al.  SymGrid: A Framework for Symbolic Computation on the Grid , 2007, Euro-Par.

[6]  Herbert Kuchen,et al.  Enhancing Muesli's Data Parallel Skeletons for Multi-core Computer Architectures , 2010, 2010 IEEE 12th International Conference on High Performance Computing and Communications (HPCC).

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

[8]  Peter Kilpatrick,et al.  Accelerating Code on Multi-cores with FastFlow , 2011, Euro-Par.

[9]  Alexander V. Shafarenko,et al.  Asynchronous Stream Processing with S-Net , 2010, International Journal of Parallel Programming.

[10]  Nowostawski,et al.  [IEEE 1999 Third International Conference on Knowledge-Based Intelligent Information Engineering Systems. KES\'99 - Adelaide, SA, Australia (31 Aug.-1 Sept. 1999)] 1999 Third International Conference on Knowledge-Based Intelligent Information Engineering Systems. Proceedings (Cat. No.99TH8410) - Par , 1999 .

[11]  Massimo Torquati,et al.  Efficient Smith-Waterman on Multi-core with FastFlow , 2010, 2010 18th Euromicro Conference on Parallel, Distributed and Network-based Processing.

[12]  Enrique Alba,et al.  MALLBA: a software library to design efficient optimisation algorithms , 2007 .

[13]  Riccardo Poli,et al.  Parallel genetic algorithm taxonomy , 1999, 1999 Third International Conference on Knowledge-Based Intelligent Information Engineering Systems. Proceedings (Cat. No.99TH8410).

[14]  Christoph W. Kessler,et al.  SkePU: a multi-backend skeleton programming library for multi-GPU systems , 2010, HLPP '10.

[15]  Leslie G. Valiant,et al.  A bridging model for parallel computation , 1990, CACM.

[16]  Frédéric Loulergue,et al.  OSL: Optimized Bulk Synchronous Parallel Skeletons on Distributed Arrays , 2009, APPT.

[17]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[18]  Ben Ashbaugh,et al.  Khronos™ group , 2015, IWOCL.

[19]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[20]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[21]  Timothy G. Mattson,et al.  Parallel programming with a pattern language * , 2001, International Journal on Software Tools for Technology Transfer.

[22]  Peter Kilpatrick,et al.  Targeting Distributed Systems in FastFlow , 2012, Euro-Par Workshops.

[23]  Marco Danelutto,et al.  A RISC Building Block Set for Structured Parallel Programming , 2013, 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[24]  Christoforos E. Kozyrakis,et al.  Evaluating MapReduce for Multi-core and Multiprocessor Systems , 2007, 2007 IEEE 13th International Symposium on High Performance Computer Architecture.

[25]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

[26]  Zhenjiang Hu,et al.  A library of constructive skeletons for sequential style of parallel programming , 2006, InfoScale '06.

[27]  Herbert Kuchen,et al.  Algorithmic skeletons for multi-core, multi-GPU systems and clusters , 2012, Int. J. High Perform. Comput. Netw..

[28]  Peter S. Pacheco Parallel programming with MPI , 1996 .