Title
PIPES: a language and compiler for task-based programming on distributed-memory clusters.
Abstract
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.
Year
DOI
Venue
2016
10.1109/SC.2016.38
SC
Keywords
Field
DocType
Distributed computing,Concurrent Collections,task parallelism,macro-dataflow,polyhedral compilation
Locality,Programming language,Computer science,Parallel algorithm,Scheduling (computing),Task parallelism,Parallel computing,Distributed memory,Exploit,Compiler,Network topology,Distributed computing
Conference
ISBN
Citations 
PageRank 
978-1-4673-8815-3
1
0.36
References 
Authors
21
4
Name
Order
Citations
PageRank
Martin Kong1896.18
Louis-noël Pouchet288047.61
P. Sadayappan34821344.32
Vivek Sarkar44318409.41