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 Kong | 1 | 89 | 6.18 |
Louis-noël Pouchet | 2 | 880 | 47.61 |
P. Sadayappan | 3 | 4821 | 344.32 |
Vivek Sarkar | 4 | 4318 | 409.41 |