DOE PAGES title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Simit: A Language for Physical Simulation

Abstract

With existing programming tools, writing high-performance simulation code is labor intensive and requires sacrificing readability and portability. Here, 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,more » 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.« less

Authors:
 [1];  [1];  [1];  [2];  [3];  [4];  [5];  [1];  [6];  [7];  [1]
  1. Massachusetts Inst. of Technology (MIT), Cambridge, MA (United States)
  2. Adobe, Cambridge, MA (United States)
  3. Stanford Univ., Stanford, CA (United States)
  4. Disney Research (United States)
  5. California Polytechnic State Univ., San Luis Obispo, CA (United States)
  6. Univ. of Texas at Austin, Austin, TX (United States)
  7. Adobe, Seattle, WA (United States)
Publication Date:
Research Org.:
Massachusetts Inst. of Technology (MIT), Cambridge, MA (United States)
Sponsoring Org.:
USDOE Office of Science (SC), Advanced Scientific Computing Research (ASCR)
OSTI Identifier:
1557575
Grant/Contract Number:  
SC0005288
Resource Type:
Accepted Manuscript
Journal Name:
ACM Transaction on Graphics
Additional Journal Information:
Journal Volume: 35; Journal Issue: 2; Journal ID: ISSN 0730-0301
Publisher:
ACM
Country of Publication:
United States
Language:
English
Subject:
97 MATHEMATICS AND COMPUTING; Graph; Matrix; Tensor; Simulation

Citation Formats

Kjolstad, Fredrik, Matusik, Wojciech, Amarasinghe, Saman, Kamil, Shoaib, Ragan-Kelley, Jonathan, Levin, David I. W., Sueda, Shinjiro, Chen, Desai, Vouga, Etienne, Kaufman, Danny M., and Kanwar, Gurtej. Simit: A Language for Physical Simulation. United States: N. p., 2016. Web. doi:10.1145/2866569.
Kjolstad, Fredrik, Matusik, Wojciech, Amarasinghe, Saman, Kamil, Shoaib, Ragan-Kelley, Jonathan, Levin, David I. W., Sueda, Shinjiro, Chen, Desai, Vouga, Etienne, Kaufman, Danny M., & Kanwar, Gurtej. Simit: A Language for Physical Simulation. United States. https://doi.org/10.1145/2866569
Kjolstad, Fredrik, Matusik, Wojciech, Amarasinghe, Saman, Kamil, Shoaib, Ragan-Kelley, Jonathan, Levin, David I. W., Sueda, Shinjiro, Chen, Desai, Vouga, Etienne, Kaufman, Danny M., and Kanwar, Gurtej. Tue . "Simit: A Language for Physical Simulation". United States. https://doi.org/10.1145/2866569. https://www.osti.gov/servlets/purl/1557575.
@article{osti_1557575,
title = {Simit: A Language for Physical Simulation},
author = {Kjolstad, Fredrik and Matusik, Wojciech and Amarasinghe, Saman and Kamil, Shoaib and Ragan-Kelley, Jonathan and Levin, David I. W. and Sueda, Shinjiro and Chen, Desai and Vouga, Etienne and Kaufman, Danny M. and Kanwar, Gurtej},
abstractNote = {With existing programming tools, writing high-performance simulation code is labor intensive and requires sacrificing readability and portability. Here, 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.},
doi = {10.1145/2866569},
journal = {ACM Transaction on Graphics},
number = 2,
volume = 35,
place = {United States},
year = {Tue Mar 29 00:00:00 EDT 2016},
month = {Tue Mar 29 00:00:00 EDT 2016}
}

Journal Article:
Free Publicly Available Full Text
Publisher's Version of Record

Citation Metrics:
Cited by: 27 works
Citation information provided by
Web of Science

Save / Share:

Works referenced in this record:

Efficient elasticity for character skinning with contact and collisions
journal, July 2011

  • McAdams, Aleka; Zhu, Yongning; Selle, Andrew
  • ACM Transactions on Graphics, Vol. 30, Issue 4
  • DOI: 10.1145/2010324.1964932

Tree structures for high dimensionality nearest neighbor searching
journal, January 1982


M�thodes de calcul diff�rentiel absolu et leurs applications
journal, March 1900

  • Ricci, M. M. G.; Levi-Civita, T.
  • Mathematische Annalen, Vol. 54, Issue 1-2
  • DOI: 10.1007/BF01454201

Decoupling algorithms from schedules for easy optimization of image processing pipelines
journal, July 2012

  • Ragan-Kelley, Jonathan; Adams, Andrew; Paris, Sylvain
  • ACM Transactions on Graphics, Vol. 31, Issue 4
  • DOI: 10.1145/2185520.2185528

PhysBAM: physically based simulation
conference, January 2011

  • Dubey, Pradeep; Hanrahan, Pat; Fedkiw, Ronald
  • ACM SIGGRAPH 2011 Courses on - SIGGRAPH '11
  • DOI: 10.1145/2037636.2037646

Die Grundlage der allgemeinen Relativitätstheorie
journal, January 1916


A Theory of Large Elastic Deformation
journal, September 1940


OSKI: A library of automatically tuned sparse matrix kernels
journal, January 2005

  • Vuduc, Richard; Demmel, James W.; Yelick, Katherine A.
  • Journal of Physics: Conference Series, Vol. 16
  • DOI: 10.1088/1742-6596/16/1/071

«Karatschajische Studien» ?????????? ?????: ????????? ? ??????????
journal, January 2015

  • S. K., Bashieva
  • Motif Akademi Halk Bilimi Dergisi, Vol. 2015, Issue 2015-2
  • DOI: 10.12981/motif.314

The Direct3D 10 system
journal, July 2006


A real-time multigrid finite hexahedra method for elasticity simulation using CUDA
journal, February 2011

  • Dick, Christian; Georgii, Joachim; Westermann, Rüdiger
  • Simulation Modelling Practice and Theory, Vol. 19, Issue 2
  • DOI: 10.1016/j.simpat.2010.11.005

Vega: Non-Linear FEM Deformable Object Simulator
journal, November 2012


Liszt: a domain specific language for building portable mesh-based PDE solvers
conference, January 2011

  • DeVito, Zachary; Duraisamy, Karthik; Darve, Eric
  • Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis on - SC '11
  • DOI: 10.1145/2063384.2063396

SociaLite: Datalog extensions for efficient social network analysis
conference, April 2013

  • Jiwon Seo, ; Guo, S.; Lam, M. S.
  • 2013 29th IEEE International Conference on Data Engineering (ICDE 2013), 2013 IEEE 29th International Conference on Data Engineering (ICDE)
  • DOI: 10.1109/ICDE.2013.6544832

Efficient Linear System Solvers for Mesh Processing
book, January 2005

  • Botsch, Mario; Bommes, David; Kobbelt, Leif
  • Mathematics of Surfaces XI
  • DOI: 10.1007/11537908_5

A language for shading and lighting calculations
journal, September 1990

  • Hanrahan, Pat; Lawson, Jim
  • ACM SIGGRAPH Computer Graphics, Vol. 24, Issue 4
  • DOI: 10.1145/97880.97911

Efficient GPU Data Structures and Methods to Solve Sparse Linear Systems in Dynamics Applications
journal, October 2012


Winged Edge Polyhedron Representation
report, October 1972


A relational model of data for large shared data banks
journal, June 1970


Primitives for the manipulation of general subdivisions and the computation of Voronoi
journal, April 1985

  • Guibas, Leonidas; Stolfi, Jorge
  • ACM Transactions on Graphics, Vol. 4, Issue 2
  • DOI: 10.1145/282918.282923

Cg: a system for programming graphics hardware in a C-like language
journal, July 2003

  • Mark, William R.; Glanville, R. Steven; Akeley, Kurt
  • ACM Transactions on Graphics, Vol. 22, Issue 3
  • DOI: 10.1145/882262.882362

The tao of parallelism in algorithms
conference, January 2011

  • Pingali, Keshav; Méndez-Lojo, Mario; Prountzos, Dimitrios
  • Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation - PLDI '11
  • DOI: 10.1145/1993498.1993501

Symbolic Dynamics and Geometry
book, October 2013

  • Guenter, Braian; Lee, Sung-Hee
  • A K Peters/CRC Press
  • DOI: 10.1201/b15909

OptiX: a general purpose ray tracing engine
journal, July 2010

  • Parker, Steven G.; Robison, Austin; Stich, Martin
  • ACM Transactions on Graphics, Vol. 29, Issue 4
  • DOI: 10.1145/1778765.1778803

OpenFab: a programmable pipeline for multi-material fabrication
journal, July 2013

  • Vidimče, Kiril; Wang, Szu-Po; Ragan-Kelley, Jonathan
  • ACM Transactions on Graphics, Vol. 32, Issue 4
  • DOI: 10.1145/2461912.2461993

Works referencing / citing this record:

GraphIt: a high-performance graph DSL
journal, October 2018

  • Zhang, Yunming; Yang, Mengjiao; Baghdadi, Riyadh
  • Proceedings of the ACM on Programming Languages, Vol. 2, Issue OOPSLA
  • DOI: 10.1145/3276491