The Community for Technology Leaders
2014 23rd International Conference on Parallel Architecture and Compilation (PACT) (2014)
Edmonton, Canada
Aug. 23, 2014 to Aug. 27, 2014
ISBN: 978-1-5090-6607-0
pp: 489-490
Pushkar Ratnalikar , School of Informatics and Computing, Indiana University, Bloomington, IN
Arun Chauhan , School of Informatics and Computing, Indiana University, Bloomington, IN
ABSTRACT
Dataflow computation is a powerful paradigm for parallel computing that is especially attractive on modern machines with multiple avenues for parallelism. However, adopting this model has been challenging as neither hardware-nor language-based approaches have been successful, except, in specialized contexts. We argue that general-purpose array languages, such as MATLAB, are good candidates for automatic translation to macro dataflow-style execution, where each array operation naturally maps to a macro dataflow operation and the model can be efficiently executed on contemporary multicore architecture. We support our argument with a fully automatic compilation technique to translate MATLAB programs to dynamic dataflow graphs that are capable of handling unbounded structured control flow. These graphs can be executed on multicore machines in an event driven fashion with the help of a runtime system built on top of Intel's Threading Building Blocks (TBB). By letting each task itself be data parallel, we are able to leverage existing data-parallel libraries and utilize parallelism at multiple levels. Our experiments on a set of benchmarks show speedups of up to 18× using our approach, over the original data-parallel code on a machine with two 16-core processors.
INDEX TERMS
MATLAB, Parallel processing, Arrays, C++ languages, Mathematical model, Libraries, Runtime
CITATION
Pushkar Ratnalikar, Arun Chauhan, "Automatic parallelism through macro dataflow in high-level array languages", 2014 23rd International Conference on Parallel Architecture and Compilation (PACT), vol. 00, no. , pp. 489-490, 2014, doi:10.1145/2628071.2628131
93 ms
(Ver 3.3 (11022016))