arrow
Return

Simit: A Language for Physical Simulation

delete2016-03-29
delete44
delete
OA
AI
F
Fredrik Kjølstad *
S
Shoaib Kamil
J
Jonathan Ragan‐Kelley
D
David I. W. Levin
S
Shinjiro Sueda
D
Desai Chen
E
Etienne Vouga
D
Danny M. Kaufman
G
Gurtej Kanwar
W
Wojciech Matusik
S
Saman Amarasinghe
DOI:10.1145/2866569delete
deleteOriginal
deleteShare
deleteSave
View PDF
Abstract

Abstract

En 中文
With 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 to 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 article, 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 4 to 20x speedups over our optimized CPU code.
Keywords:
Graph
matrix
tensor
simulation
AI Summary

AI Summary

Key information extracted from the uploaded paper, including a brief overview, abstract, background, key highlights, visual analysis, and future outlook.

Journal

ACM Transactions on Graphics cover
ACM Transactions on Graphics
IF:
9.5
Papers:
4.7K
Citations:
3.6W

Organization

A
adobe systems inc.
Scholars:
273
Papers: 305
Citations: 0
California State University System cover
California State University System
Scholars:
2.8W
Papers: 2.4W
Citations: 457
S
Stanford University
Scholars:
9.6W
Papers: 8.2W
Citations: 17.0W
C
California Polytechnic State University San Luis Obispo
Scholars:
1.5K
Papers: 1.3K
Citations: 13
U
university of texas austin
Scholars:
2.4W
Papers: 2.0W
Citations: 54
U
university of texas system
Scholars:
18.5W
Papers: 15.6W
Citations: 210
researcher View more organizations