The University of Southampton
University of Southampton Institutional Repository

Synthesizing imperative distributed-memory implementations from functional data-parallel programs

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
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.

PDF
Thesis.pdf - Other
Download (3MB)

More information

Published date: May 2015
Organisations: University of Southampton, Electronic & Software Systems

Identifiers

Local EPrints ID: 381650
URI: https://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: 17 Jul 2017 20:25

Export record

Contributors

Author: Tristan Aubrey-Jones
Thesis advisor: Bernd Fischer

University divisions

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

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of https://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×