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