Automatic Parallelism Through Macro Dataflow in MATLAB.

Lecture Notes in Computer Science(2015)

引用 2|浏览33
暂无评分
摘要
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 hardwarenor 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. We present a fully automatic compilation technique to translate matlab programs to dynamic dataflow graphs that are capable of handling unbounded structured control flow. These graphs are executed on multicore machines in an event driven fashion with the help of a runtime system built on top of Intel TBB. Array statements in matlab naturally lead to coarse-grained tasks that are translated to C++ code and executed in task-parallel fashion using TBB. By letting each task itself be data parallel, we are able to leverage existing data parallel libraries and utilize parallelism at multiple levels. We use type inference to aid in the creation of macro tasks with sufficient granularity. Our experiments on a set of benchmarks show speedups of up to 18x using our approach, over the original code on a machine with two 16-core processors.
更多
查看译文
关键词
Runtime System, Loop Body, Data Parallelism, Control Dependency, Array Statement
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要