Synthesizing imperative distributed-memory implementations
from functional data-parallel programs
Synthesizing imperative distributed-memory implementations
from functional data-parallel programs
Distributed memory architectures such as Linux clusters have become increasingly common butremain difficult to program. We target this problem and present a noveltechnique to automatically generate data distribution plans, and subsequently MPI implementations in C++,from programs written in a functional core language. This framework encodes distributed data layouts as types, which are then used both to search (via type inference) for optimal data distribution plans and to generate the MPI implementations. The main novelty of our approach is that it supports multiple collections, distributed arrays, maps, and lists, rather than just arrays.
We introduce the core language and explain our formalization of distributed data layouts. We describe how to search for data distribution plans using a type inference algorithm, and how we generate MPI implementations in C++ from such plans. We then show how our types can be extended to support local data layouts and improved array distributions. We also show how a theorem prover and suitable equational theories can be used to yield a better (i.e., more complete) type inference algorithm. We then describe the design of our implementation, and explain how we use a runtime performance-feedback directed search algorithm to find the best data distribution plans for different input programs. Finally, we present some conceptual and experimental evaluation which analyses the capabilities of our approach, and shows that our implementation can find distributed memory implementations of several example programs, and that the performance of generated programs is similar to that of hand-coded versions.
Aubrey-Jones, Tristan
71a8e321-90e3-4a78-b647-d73fec2e4aba
May 2015
Aubrey-Jones, Tristan
71a8e321-90e3-4a78-b647-d73fec2e4aba
Fischer, Bernd
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
Aubrey-Jones, Tristan
(2015)
Synthesizing imperative distributed-memory implementations
from functional data-parallel programs.
University of Southampton, Physical Sciences and Engineering, Doctoral Thesis, 217pp.
Record type:
Thesis
(Doctoral)
Abstract
Distributed memory architectures such as Linux clusters have become increasingly common butremain difficult to program. We target this problem and present a noveltechnique to automatically generate data distribution plans, and subsequently MPI implementations in C++,from programs written in a functional core language. This framework encodes distributed data layouts as types, which are then used both to search (via type inference) for optimal data distribution plans and to generate the MPI implementations. The main novelty of our approach is that it supports multiple collections, distributed arrays, maps, and lists, rather than just arrays.
We introduce the core language and explain our formalization of distributed data layouts. We describe how to search for data distribution plans using a type inference algorithm, and how we generate MPI implementations in C++ from such plans. We then show how our types can be extended to support local data layouts and improved array distributions. We also show how a theorem prover and suitable equational theories can be used to yield a better (i.e., more complete) type inference algorithm. We then describe the design of our implementation, and explain how we use a runtime performance-feedback directed search algorithm to find the best data distribution plans for different input programs. Finally, we present some conceptual and experimental evaluation which analyses the capabilities of our approach, and shows that our implementation can find distributed memory implementations of several example programs, and that the performance of generated programs is similar to that of hand-coded versions.
More information
Published date: May 2015
Organisations:
University of Southampton, Electronic & Software Systems
Identifiers
Local EPrints ID: 381650
URI: http://eprints.soton.ac.uk/id/eprint/381650
PURE UUID: 5651621f-fe7a-4c6f-bf63-1e15a039476c
Catalogue record
Date deposited: 18 Sep 2015 09:07
Last modified: 14 Mar 2024 21:18
Export record
Contributors
Author:
Tristan Aubrey-Jones
Thesis advisor:
Bernd Fischer
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics