Performance and Usability Evaluation of a Pattern-Oriented Parallel Programming Interface for Multi-Core Architectures

Multi-core architectures have increased the power of parallelism by coupling many cores in a single chip. This becomes even more complex for developers to exploit the available parallelism in order to provide high performance scalable programs. To address these challenges, we propose the DSLPOPP (Domain-Specific Language for Pattern-Oriented Parallel Programming), which links the pattern-based approach in the programming interface as an alternative to reduce the effort of parallel software development, and achieve good performance in some applications. In this paper, the objective is to evaluate the usability and performance of the master/slave pattern and compare it to the Pthreads library. Moreover, experiments have shown that the master/slave interface of the DSL-POPP reduces up to 50% of the programming effort, without significantly affecting the performance.

[1]  Dalvan Griebler,et al.  Performance Prediction of Parallel Applications with Parallel Patterns Using Stochastic Methods , 2011, 2011 Simpasio em Sistemas Computacionais.

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

[3]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

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

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

[6]  Victor Pankratius Automated usability evaluation of parallel programming constructs: nier track , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[7]  Dalvan Griebler,et al.  Towards a Domain-Specific Language for Patterns-Oriented Parallel Programming , 2013, SBLP.

[8]  Caitlin Sadowski,et al.  The last mile: parallel programming and usability , 2010, FoSER '10.

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

[10]  Jonathan Schaeffer,et al.  Pattern-based parallel programming , 2002, Proceedings International Conference on Parallel Processing.

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

[12]  Jonathan Schaeffer,et al.  An experiment to measure the usability of parallel programming systems , 1996 .

[13]  Barbara Chapman,et al.  Using OpenMP - portable shared memory parallel programming , 2007, Scientific and engineering computation.

[14]  Peter Kilpatrick,et al.  An Efficient Unbounded Lock-Free Queue for Multi-core Systems , 2012, Euro-Par.

[15]  Andy P. Field,et al.  Discovering Statistics Using SPSS , 2000 .

[16]  Jonathan Schaeffer,et al.  An experiment to measure the usability of parallel programming systems , 1996, Concurr. Pract. Exp..

[17]  Kunle Olukotun,et al.  A domain-specific approach to heterogeneous parallelism , 2011, PPoPP '11.