DocumentCode :
1763731
Title :
An Extensible System for Multilevel Automatic Data Partition and Mapping
Author :
Gonzalez-Escribano, Arturo ; Torres, Yuri ; Fresno, Javier ; Llanos, Diego
Author_Institution :
Dept. de Inf., Univ. de Valladolid, Valladolid, Spain
Volume :
25
Issue :
5
fYear :
2014
fDate :
41760
Firstpage :
1145
Lastpage :
1154
Abstract :
Automatic data distribution is a key feature to obtain efficient implementations from abstract and portable parallel codes. We present a highly efficient and extensible runtime library that integrates techniques for automatic data partition and mapping. It uses a novel approach to define an abstract interface and a plug-in system to encapsulate different types of regular and irregular techniques, helping to generate codes which are independent of the exact mapping functions selected. Currently, it supports hierarchical tiling of arrays with dense and stride domains, that allows the implementation of both data and task parallelism using a SPMD model. It automatically computes appropriate domain partitions for a selected virtual topology, mapping them to available processors with static or dynamic load-balancing techniques. Our library also allows the construction of reusable communication patterns that efficiently exploit MPI communication capabilities. The use of our library greatly reduces the complexity of data distribution and communication, hiding the details of the underlying architecture. The library can be used as an abstract layer for building generic tiling operations as well. Our experimental results show that the use of this library allows to achieve similar performance as carefully-implemented manual versions for several, well-known parallel kernels and benchmarks in distributed and multicore systems, and substantially reduces programming effort.
Keywords :
application program interfaces; message passing; parallel programming; program compilers; resource allocation; software libraries; Hitmap; MPI communication capabilities; SPMD model; abstract interface; abstract layer; automatic data distribution; code generation; data communication; distributed system; dynamic load-balancing technique; generic tiling operations; hierarchical array tiling; multicore system; multilevel automatic data mapping; multilevel automatic data partition; parallel kernels; plug-in system; portable parallel codes; processors; programming effort reduction; reusable communication patterns; runtime library; static load-balancing technique; task parallelism; virtual topology; Arrays; Indexes; Layout; Libraries; Program processors; Topology; Data partition; MPI; mapping techniques; parallel libraries; tiling;
fLanguage :
English
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
Publisher :
ieee
ISSN :
1045-9219
Type :
jour
DOI :
10.1109/TPDS.2013.83
Filename :
6482561
Link To Document :
بازگشت