PIPES: A Language and Compiler for Task-Based Programming on Distributed-Memory Clusters
PIPES: A Language and Compiler for Task-Based Programming on Distributed-Memory Clusters
复制标题
PIPES:分布式内存集群上基于任务的编程语言和编译器
DOI:
--
复制
发表时间:
2016
期刊:
影响因子:
--
通讯作者:
Vivek Sarkar
中科院分区:
文献类型:
--
作者:
Martin Kong;L. Pouchet;P. Sadayappan;Vivek Sarkar
Applications running on clusters of shared-memory computers are often implemented using OpenMP+MPI. Productivity can be vastly improved using task-based programming, a paradigm where the user expresses the data and control-flow relations between tasks, offering the runtime maximal freedom to place and schedule tasks. While productivity is increased, high-performance execution remains challenging: the implementation of parallel algorithms typically requires specific task placement and communication strategies to reduce internode communications and exploit data locality. In this work, we present a new macro-dataflow programming environment for distributed-memory clusters, based on the Intel Concurrent Collections (CnC) runtime. Our language extensions let the user define virtual topologies, task mappings, task-centric data placement, task and communication scheduling, etc. We introduce a compiler to automatically generate Intel CnC C++ run-time, with key automatic optimizations including task coarsening and coalescing. We experimentally validate our approach on a variety of scientific computations, demonstrating both productivity and performance.