Hierarchical Task-Based Programming With StarSs

Programming models for multicore and many-core systems are listed as one of the main challenges in the near future for computing research. These programming models should be able to exploit the underlying platform, but also should have good programmability to enable programmer productivity. With respect to the heterogeneity and hierarchy of the underlying platforms, the programming models should take them into account but they should also enable the programmer to be unaware of the complexity of the hardware. In this paper we present an extension of the StarSs syntax to support task hierarchy. A motivation for such a hierarchical approach is presented through experimentation with CellSs. A prototype implementation of such a hierarchical task-based programming model that combines a first task level with SMPSs and a second task level with CellSs is presented. The preliminary results obtained when executing a matrix multiplication and a Cholesky factorization show the viability and potential of the approach and the current issues raised.

[1]  Eduard Ayguadé,et al.  Nanos mercurium: A research compiler for OpenMP , 2004 .

[2]  Alejandro Duran,et al.  A Proposal to Extend the OpenMP Tasking Model for Heterogeneous Architectures , 2009, IWOMP.

[3]  Jack J. Dongarra,et al.  Scheduling for Numerical Linear Algebra Library at Scale , 2008, High Performance Computing Workshop.

[4]  Jesús Labarta,et al.  CellSs: Scheduling techniques to better exploit memory hierarchy , 2009, Sci. Program..

[5]  M. Gonzalez,et al.  Exploiting pipelined executions in OpenMP , 2003, 2003 International Conference on Parallel Processing, 2003. Proceedings..

[6]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[7]  Michael Kistler,et al.  Accelerating computing with the cell broadband engine processor , 2008, Conf. Computing Frontiers.

[8]  Alejandro Duran,et al.  A Proposal to Extend the OpenMP Tasking Model with Dependent Tasks , 2009, International Journal of Parallel Programming.

[9]  Robert A. van de Geijn,et al.  Supermatrix out-of-order scheduling of matrix operations for SMP and multi-core architectures , 2007, SPAA '07.

[10]  Herbert Bos,et al.  SP@CE - An SP-Based Programming Model for Consumer Electronics Streaming Applications , 2006, LCPC.

[11]  James E. Smith,et al.  The microarchitecture of superscalar processors , 1995, Proc. IEEE.

[12]  Tao Zhang,et al.  Supporting OpenMP on Cell , 2008, International Journal of Parallel Programming.

[13]  Jesús Labarta,et al.  CellSs: Making it easier to program the Cell Broadband Engine processor , 2007, IBM J. Res. Dev..

[14]  Rosa M. Badia,et al.  CellSs: a Programming Model for the Cell BE Architecture , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[15]  William J. Dally,et al.  Sequoia: Programming the Memory Hierarchy , 2006, International Conference on Software Composition.

[16]  R. Dolbeau,et al.  HMPP TM : A Hybrid Multi-core Parallel Programming Environment , 2022 .

[17]  Julien Langou,et al.  A Class of Parallel Tiled Linear Algebra Algorithms for Multicore Architectures , 2007, Parallel Comput..

[18]  Eduard Ayguadé,et al.  Impact of the Memory Hierarchy on Shared Memory Architectures in Multicore Programming Models , 2009, 2009 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing.

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

[20]  Kathryn M. O'Brien,et al.  Supporting OpenMP on cell , 2008 .

[21]  Andrew S. Grimshaw,et al.  Easy-to-use object-oriented parallel processing with Mentat , 1993, Computer.

[22]  Jesús Labarta,et al.  A dependency-aware task-based programming environment for multi-core architectures , 2008, 2008 IEEE International Conference on Cluster Computing.