Advanced Search
DSpace@MIT

Simit: A Language for Physical Simulation

Research and Teaching Output of the MIT Community

Show simple item record

dc.contributor.advisor Saman Amarasinghe
dc.contributor.author Kjolstad, Fredrik en_US
dc.contributor.author Kamil, Shoaib en_US
dc.contributor.author Ragan-Kelley, Jonathan en_US
dc.contributor.author Levin, David I.W. en_US
dc.contributor.author Sueda, Shinjiro en_US
dc.contributor.author Chen, Desai en_US
dc.contributor.author Vouga, Etienne en_US
dc.contributor.author Kaufman, Danny M. en_US
dc.contributor.author Kanwar, Gurtej en_US
dc.contributor.author Matusik, Wojciech en_US
dc.contributor.author Amarasinghe, Saman en_US
dc.contributor.other Computer Architecture en
dc.date.accessioned 2015-05-26T19:15:03Z
dc.date.available 2015-05-26T19:15:03Z
dc.date.issued 2015-05-26
dc.identifier.uri http://hdl.handle.net/1721.1/97075
dc.description.abstract Using existing programming tools, writing high-performance simulation code is labor intensive and requires sacrificing readability and portability. The alternative is to prototype simulations in a high-level language like Matlab, thereby sacrificing performance. The Matlab programming model naturally describes the behavior of an entire physical system using the language of linear algebra. However, simulations also manipulate individual geometric elements, which are best represented using linked data structures like meshes. Translating between the linked data structures and linear algebra comes at significant cost, both to the programmer and the machine. High-performance implementations avoid the cost by rephrasing the computation in terms of linked or index data structures, leaving the code complicated and monolithic, often increasing its size by an order of magnitude. In this paper, we present Simit, a new language for physical simulations that lets the programmer view the system both as a linked data structure in the form of a hypergraph, and as a set of global vectors, matrices and tensors depending on what is convenient at any given time. Simit provides a novel assembly construct that makes it conceptually easy and computationally efficient to move between the two abstractions. Using the information provided by the assembly construct, the compiler generates efficient in-place computation on the graph. We demonstrate that Simit is easy to use: a Simit program is typically shorter than a Matlab program; that it is high-performance: a Simit program running sequentially on a CPU performs comparably to hand-optimized simulations; and that it is portable: Simit programs can be compiled for GPUs with no change to the program, delivering 5-25x speedups over our optimized CPU code. en_US
dc.format.extent 17 p. en_US
dc.relation.ispartofseries MIT-CSAIL-TR-2015-017
dc.subject Graphs, Matrices, Tensors, Simulation en_US
dc.title Simit: A Language for Physical Simulation en_US
dc.date.updated 2015-05-26T19:15:04Z


Files in this item

Name Size Format Description
MIT-CSAIL-TR-2015 ... 2.160Mb PDF

This item appears in the following Collection(s)

Show simple item record

MIT-Mirage