An adaptive approach to data placement

Programming distributed-memory machines requires careful placement of data to balance the computational load among the nodes and minimize excess data movement between the nodes. Most current approaches to data placement require the programmer or compiler to place data initially and then possibly to move it explicitly during a computation. This paper describes a new, adaptive approach. It is implemented in the Adapt system, which takes an initial data placement, efficiently monitors how well it performs and changes the placement whenever the monitoring indicates that a different placement would perform better. Adapt frees the programmer from having to specify data placements, and it can use run-time information to find better placements than compilers. Moreover, Adapt automatically supports a "variable block" placement, which is especially useful for applications with nearest-neighbor communication but an imbalanced workload. For applications in which the best data placement varies dynamically, using Adapt can lead to better performance than using any statically determined data placement.

[1]  Ken Kennedy,et al.  A static performance estimator to guide data partitioning decisions , 1991, PPOPP '91.

[2]  Santosh G. Abraham,et al.  Compiler techniques for data partitioning of sequentially iterated parallel loops , 1990, ICS '90.

[3]  Gregory R. Andrews,et al.  Distributed filaments: efficient fine-grain parallelism on a cluster of workstations , 1994, OSDI '94.

[4]  Manish Gupta,et al.  PARADIGM: a compiler for automatic data distribution on multicomputers , 1993, ICS '93.

[5]  Barbara M. Chapman,et al.  Programming in Vienna Fortran , 1992, Sci. Program..

[6]  Skef Wholey Automatic data mapping for distributed-memory parallel computers , 1992, ICS '92.

[7]  Marina C. Chen,et al.  The Data Alignment Phase in Compiling Programs for Distrubuted-Memory Machines , 1991, J. Parallel Distributed Comput..

[8]  Corporate Rice University,et al.  High performance Fortran language specification , 1993, FORF.

[9]  Joel H. Saltz,et al.  Runtime and language support for compiling adaptive irregular programs on distributed‐memory machines , 1995, Softw. Pract. Exp..

[10]  Monica S. Lam,et al.  Global optimizations for parallelism and locality on scalable parallel machines , 1993, PLDI '93.

[11]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[12]  Dharma P. Agrawal,et al.  Compiling functional parallelism on distributed-memory systems , 1994, IEEE Parallel & Distributed Technology: Systems & Applications.

[13]  Robert P. Weaver,et al.  The DINO Parallel Programming Language , 1991, J. Parallel Distributed Comput..

[14]  David Socha Supporting fine-grain computation on distributed memory parallel computers , 1991 .

[15]  Ken Kennedy,et al.  An Overview of the Fortran D Programming System , 1991, LCPC.

[16]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[17]  Ken Kennedy,et al.  Automatic Data Layout for High Performance Fortran , 1995, SC.

[18]  Guy L. Steele,et al.  Data Optimization: Allocation of Arrays to Reduce Communication on SIMD Machines , 1990, J. Parallel Distributed Comput..

[19]  Joel H. Saltz,et al.  Adaptive runtime support for direct simulation Monte Carlo methods on distributed memory architectures , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.