Automatic Parallelism Through Macro Dataflow in MATLAB

Dataflow computation model is a powerful paradigm that exploits the inherent parallelism in a program. It is especially relevant on modern machines that offer multiple avenues for parallelizing code. However, adopting this model has been challenging as neither hardware- nor language-based approaches have had much success in the past outside specialized contexts. We argue that macro dataflow, where each dataflow operation is computationally non-trivial, can be implemented effectively on contemporary general-purpose hardware with the help of a runtime system employing a modern task-oriented library, such as Intel Threading Building Blocks (TBB). In order to make this approach attractive to community of scientific programmers, a strategy that enables programs written in popular programming languages to execute as dataflow computations is required.

[1]  Ying Chen,et al.  On Grid Programming and MATLAB*G , 2004, GCC.

[2]  Arun Chauhan,et al.  Compile-time disambiguation of MATLAB types through concrete interpretation with automatic run-time fallback , 2008, 2009 International Conference on High Performance Computing (HiPC).

[3]  Conrad Sanderson,et al.  Armadillo: An Open Source C++ Linear Algebra Library for Fast Prototyping and Computationally Intensive Experiments , 2010 .

[4]  Ken Kennedy,et al.  Slice-Hoisting for Array-Size Inference in MATLAB , 2003, LCPC.

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

[6]  Prithviraj Banerjee,et al.  Compiling MATLAB programs to ScaLAPACK: exploiting task and data parallelism , 1996, Proceedings of International Conference on Parallel Processing.

[7]  Guang R. Gao,et al.  Advanced topics in dataflow computing and multithreading , 1994 .

[8]  Jeremy Kepner,et al.  'pMATLAB Parallel MATLAB Library' , 2007, Int. J. High Perform. Comput. Appl..

[9]  John R. Gilbert,et al.  Star-P: High Productivity Parallel Computing , 2004 .

[10]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[11]  Nicolae Popovici,et al.  Putting intel® threading building blocks to work , 2008, IWMSE '08.

[12]  Keshav Pingali,et al.  From Control Flow to Dataflow , 1991, J. Parallel Distributed Comput..

[13]  David A. Padua,et al.  Gated SSA-based demand-driven symbolic analysis for parallelizing compilers , 1995, ICS '95.

[14]  Arthur B. Maccabe,et al.  The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages , 1990, PLDI '90.