DFGR an Intermediate Graph Representation for Macro-Dataflow Programs

In this paper we propose a new intermediate graph representation for macro-dataflow programs, DFGR, which is capable of offering a high-level view of applications for easy programmability, while allowing the expression of complex applications using dataflow principles. DFGR makes it possible to write applications in a manner that is oblivious of the underlying parallel runtime, and can easily be targeted by both programming systems and domain experts. In addition, DFGR can use further optimizations in the form of graph transformations, enabling the coupling of static and dynamic scheduling and efficient task composition and assignment, for improved scalability and locality. We show preliminary performance results for an implementation of DFGR on a shared memory runtim system, offering speedups of up to 11× on 12 cores, for complex graphs.

[1]  Sven Verdoolaege,et al.  isl: An Integer Set Library for the Polyhedral Model , 2010, ICMS.

[2]  Doran Wilde,et al.  A LIBRARY FOR DOING POLYHEDRAL OPERATIONS , 2000 .

[3]  Paul Feautrier,et al.  Dataflow analysis of array and scalar references , 1991, International Journal of Parallel Programming.

[4]  John Glauert,et al.  SISAL: streams and iteration in a single assignment language. Language reference manual, Version 1. 2. Revision 1 , 1985 .

[5]  Jason Cong,et al.  Mapping a data-flow programming model onto heterogeneous platforms , 2012, LCTES 2012.

[6]  Vivek Sarkar,et al.  Expressing DOACROSS Loop Dependences in OpenMP , 2013, IWOMP.

[7]  Vivek Sarkar,et al.  Phasers: a unified deadlock-free construct for collective and point-to-point synchronization , 2008, ICS '08.

[8]  Sanjay V. Rajopadhye,et al.  The Z-polyhedral model , 2007, PPOPP.

[9]  Vivek Sarkar,et al.  Folding of Tagged Single Assignment Values for Memory-Efficient Parallelism , 2012, Euro-Par.

[10]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[11]  Vivek Sarkar,et al.  DrHJ: a lightweight pedagogic IDE for Habanero Java , 2011, PPPJ.

[12]  Charles E. Leiserson,et al.  Executing task graphs using work-stealing , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[13]  Jason Cong,et al.  Customizable Domain-Specific Computing , 2009, IEEE Design & Test of Computers.

[14]  Jason Cong,et al.  Mapping a data-flow programming model onto heterogeneous platforms , 2012, LCTES '12.

[15]  Alexander Aiken,et al.  Legion: Expressing locality and independence with logical regions , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[16]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[17]  Vivek Sarkar,et al.  Software challenges in extreme scale systems , 2009 .

[18]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[19]  Vivek Sarkar,et al.  The Flexible Preconditions Model for Macro-Dataflow Execution , 2013, 2013 Data-Flow Execution Models for Extreme Scale Computing.

[20]  Vivek Sarkar,et al.  Partitioning parallel programs for macro-dataflow , 1986, LFP '86.

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

[22]  Jack B. Dennis,et al.  VAL -- A Value-Oriented Algorithmic Language (Preliminary Reference Manual), , 1979 .

[23]  Paraskevas Evripidou,et al.  TFlux: A Portable Platform for Data-Driven Multithreading on Commodity Multicore Systems , 2008, 2008 37th International Conference on Parallel Processing.

[24]  Cédric Bastoul,et al.  Code generation in the polyhedral model is easier than you think , 2004, Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004..