The stapl Skeleton Framework

This paper describes the stapl Skeleton Framework, a high-level skeletal approach for parallel programming. This framework abstracts the underlying details of data distribution and parallelism from programmers and enables them to express parallel programs as a composition of existing elementary skeletons such as map, map-reduce, scan, zip, butterfly, allreduce, alltoall and user-defined custom skeletons.

[1]  Arch D. Robison,et al.  Composable Parallel Patterns with Intel Cilk Plus , 2013, Computing in Science & Engineering.

[2]  Emden R. Gansner,et al.  An open graph visualization system and its applications to software engineering , 2000 .

[3]  Guy E. Blelloch,et al.  Prefix sums and their applications , 1990 .

[4]  Herbert Kuchen,et al.  The Münster Skeleton Library Muesli: A comprehensive overview , 2009 .

[5]  Jens Palsberg,et al.  Concurrent Collections , 2010 .

[6]  Marco Danelutto,et al.  FastFlow: high-level and ecient streaming on multi-core (A FastFlow short tutorial) , 2011 .

[7]  Christian Lengauer,et al.  Transforming Rapid Prototypes to Efficient Parallel Programs , 2003, Patterns and Skeletons for Parallel and Distributed Computing.

[8]  Nancy M. Amato,et al.  Design for Interoperability in stapl: pMatrices and Linear Algebra Algorithms , 2008, LCPC.

[9]  Horacio González-Vélez,et al.  A survey of algorithmic skeleton frameworks: high‐level structured parallel programming enablers , 2010, Softw. Pract. Exp..

[10]  David H. Bailey,et al.  The Nas Parallel Benchmarks , 1991, Int. J. High Perform. Comput. Appl..

[11]  Nancy M. Amato,et al.  The STAPL parallel container framework , 2011, PPoPP '11.

[12]  Peter Kilpatrick,et al.  The ParaPhrase Project: Parallel Patterns for Adaptive Heterogeneous Multicore Systems , 2011, FMCO.

[13]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[15]  Nancy M. Amato,et al.  The STAPL Parallel Graph Library , 2012, LCPC.

[16]  Sergei Gorlatch,et al.  Patterns and Skeletons for Parallel and Distributed Computing , 2002, Springer London.

[17]  Jean-Thierry Lapresté,et al.  Quaff: efficient C++ design for parallel skeletons , 2006, Parallel Comput..

[18]  Nancy M. Amato,et al.  The STAPL pView , 2010, LCPC.

[19]  Jesper Larsson Träff,et al.  Parallel Prefix (Scan) Algorithms for MPI , 2006, PVM/MPI.

[20]  Nancy M. Amato,et al.  STAPL: standard template adaptive parallel library , 2010, SYSTOR '10.

[21]  Laxmikant V. Kalé,et al.  CHARM++: a portable concurrent object oriented system based on C++ , 1993, OOPSLA '93.

[22]  Arch D. Robison,et al.  Structured Parallel Programming: Patterns for Efficient Computation , 2012 .

[23]  J. Paul Morrison,et al.  Flow-Based Programming, 2nd Edition: A New Approach to Application Development , 2010 .

[24]  James C. Browne,et al.  The CODE 2.0 graphical parallel programming language , 1992, ICS '92.

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

[26]  David R. Musser,et al.  STL tutorial and reference guide , 2001 .

[27]  David H. Bailey,et al.  The NAS Parallel Benchmarks 2.0 , 2015 .

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

[29]  David R. Musser,et al.  STL tutorial and reference guide, second edition: C++ programming with the standard template library , 2001 .

[30]  Murray Cole,et al.  Algorithmic Skeletons , 2006, Research Directions in Parallel Functional Programming.

[31]  Murray Cole,et al.  Algorithmic Skeletons: Structured Management of Parallel Computation , 1989 .