Designing languages for parallel portability of physical simulations, using relational algebraic abstractions

Placeholder Show Content

Abstract/Contents

Abstract
The desire to ever more efficiently simulate physical phenomena using computers produces a demand for increased specialization of physical models, geometric & numeric algorithms, and computing hardware/systems. This demand limits itself by trending towards unmanagable complexity; manifesting as an inability to separate disciplinary specialties via distinct parts of the simulation code. For parallelism in particular, the interface along which this separation happens must necessarily take the form of a language, separating compiler-programmers from simulation-programmers. Furthermore, such languages must exploit a more abstract and restricted data model than random-access-memory in order to enable performant portability across different parallel systems. I propose using a relational (algebraic) abstraction of simulation data in order to give compiler programmers both sufficient freedom and information to successfully port applications onto parallel hardware, while maintaining high performance (time and memory). I investigate three aspects of this problem, organized by the metric-topology distinction from geometry, and explored by constructing language prototypes: (1) Ebb, a language for local stencil computations on metric data; (2) Seam, a language for local modification of topological data (i.e. remeshing); and (3) Gong, a language for generation of topology from metric locality (i.e. collision detection). These languages use a common relational abstraction of data, including coupling of structured and unstructured mesh domains in a single program. Seam additionally leverages the concepts of transactions and views from databases, while Gong leverages the concepts of joins and indices. Database queries are extended by treating actions on queries using parallelizable lock-free effects beyond simple reading and writing. Experimental evaluation of prototype language implementations (with support for GPUs) shows that the performance of highly-tuned implementations can be matched to within a 1.25x overhead at worst (for an Ebb implementation of a super-computing benchmark; 1.15x for a Gong implementation of an industrial collision detection system). However, the ability to systematically port code to different platforms easily allows 2-9x accelerations of many simulation programs over the next best cpu/multi-core implementations available. Ebb programs are usually less than half as long, while automatic view maintenance in Seam yields 10x reductions in complex pointer manipulation code size.

Description

Type of resource text
Form electronic resource; remote; computer; online resource
Extent 1 online resource.
Place California
Place [Stanford, California]
Publisher [Stanford University]
Copyright date 2019; ©2019
Publication date 2019; 2019
Issuance monographic
Language English

Creators/Contributors

Author Bernstein, Gilbert Louis
Degree supervisor Hanrahan, P. M. (Patrick Matthew)
Thesis advisor Hanrahan, P. M. (Patrick Matthew)
Thesis advisor Aiken, Alexander
Thesis advisor James, Doug L
Degree committee member Aiken, Alexander
Degree committee member James, Doug L
Associated with Stanford University, Computer Science Department.

Subjects

Genre Theses
Genre Text

Bibliographic information

Statement of responsibility Gilbert Louis Bernstein.
Note Submitted to the Computer Science Department.
Thesis Thesis Ph.D. Stanford University 2019.
Location electronic resource

Access conditions

Copyright
© 2019 by Gilbert Louis Bernstein
License
This work is licensed under a Creative Commons Attribution Non Commercial Share Alike 3.0 Unported license (CC BY-NC-SA).

Also listed in

Loading usage metrics...