Metaprogramming-Enabled Parallel Execution of Apparently Sequential C++ Code.

SC16: The International Conference for High Performance Computing, Networking, Storage and Analysis Salt Lake City Utah November, 2016(2016)

引用 4|浏览31
暂无评分
摘要
Task-based execution models have received considerable attention in recent years to meet the performance challenges facing high-performance computing (HPC). In this paper we introduce MetaPASS --- Metaprogramming-enabled Parallelism from Apparently Sequential Semantics --- a proof-of-concept, non-intrusive header library that enables implicit task-based parallelism in a sequential C++ code. MetaPASS is a data-driven model, relying on dependency analysis of variable read/write accesses to derive a directed acyclic graph (DAG) of the computation to be performed. MetaPASS enables embedding of runtime dependency analysis directly in C++ applications using only template metaprogramming. Rather than requiring verbose task-based code or source-to-source compilers, a native C++ code can be made task-based with minimal modifications. We present an overview of the programming model enabled by MetaPASS and the C++ runtime API required to support it. Details are provided regarding how standard template metaprogramming is used to capture task dependencies. We finally discuss how the programming model can be deployed in both an MPI+X and in a standalone distributed memory context.
更多
查看译文
关键词
task-based runtimes,template metaprogramming,parallel computing,programming models,execution models
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要