Show simple item record

dc.contributor.authorMatusik, Wojciech
dc.contributor.authorAmarasinghe, Saman
dc.contributor.authorKamil, Shoaib
dc.contributor.authorRagan-Kelley, Jonathan
dc.contributor.authorLevin, David I. W.
dc.contributor.authorSueda, Shinjiro
dc.contributor.authorVouga, Etienne
dc.contributor.authorKaufman, Danny M.
dc.contributor.authorKanwar, Gurtej
dc.contributor.authorKjoelstad, Fredrik Berg
dc.contributor.authorChen, Desai
dc.date.accessioned2017-07-14T15:33:50Z
dc.date.available2017-07-14T15:33:50Z
dc.date.issued2016-05
dc.identifier.issn0730-0301
dc.identifier.urihttp://hdl.handle.net/1721.1/110702
dc.description.abstractWith 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 20× speedups over our optimized CPU code.en_US
dc.description.sponsorshipUnited States. Department of Energy (DESC0005288)en_US
dc.description.sponsorshipUnited States. Department of Energy (DE-SC0008923)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (DE-SC0008923)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (XPS- 153375)en_US
dc.description.sponsorshipUnited States. Defense Advanced Research Projects Agency. Simplifying Complexity in Scientific Discoveryen_US
dc.description.sponsorshipUnited States. Defense Advanced Research Projects Agency (FA8750-14-2- 0009)en_US
dc.description.sponsorshipStanford University. Stanford Pervasive Parallelism Laboratoryen_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2866569en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT Web Domainen_US
dc.titleSimit: A Language for Physical Simulationen_US
dc.typeArticleen_US
dc.identifier.citationKjolstad, Fredrik et al. “Simit: A Language for Physical Simulation.” ACM Transactions on Graphics 35.2 (2016): 1–21.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorKjoelstad, Fredrik Berg
dc.contributor.mitauthorChen, Desai
dc.relation.journalACM Transactions on Graphicsen_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dspace.orderedauthorsKjolstad, Fredrik; Matusik, Wojciech; Amarasinghe, Saman; Kamil, Shoaib; Ragan-Kelley, Jonathan; Levin, David I. W.; Sueda, Shinjiro; Chen, Desai; Vouga, Etienne; Kaufman, Danny M.; Kanwar, Gurtejen_US
dspace.embargo.termsNen_US
dc.identifier.orcidhttps://orcid.org/0000-0002-2267-903X
dc.identifier.orcidhttps://orcid.org/0000-0003-2336-6235
mit.licenseOPEN_ACCESS_POLICYen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record