A language for computing on sparse systems

Getting Started

Language Manual


Mailing List


Why New Programming Languages for Simulation?

Gilbert Louis Bernstein, and Fredrik Kjolstad


Writing highly performant simulations requires a lot of human effort to optimize for an increasingly diverse set of hardware platforms, such as multi-core CPUs, GPUs, and distributed machines. Since these optimizations cut across both the design of geometric data structures and numerical linear algebra, code reusability and portability is frequently sacrificed for performance.

We believe the key to make simulation programmers more productive at developing portable and performant code is to introduce new linguistic abstractions, as in rendering and image processing. In this perspective, we distill the core ideas from our two languages, Ebb and Simit, that are published in this journal.


Paper: [pdf]


 author = {Bernstein, Gilbert Louis and Kjolstad, Fredrik},
 title = {Why New Programming Languages for Simulation?},
 journal = {ACM Trans. Graph.},
 issue_date = {May 2016},
 volume = {35},
 number = {2},
 month = may,
 year = {2016},
 issn = {0730-0301},
 pages = {20e:1--20e:3},
 articleno = {20e},
 numpages = {3},
 url = {},
 doi = {10.1145/2930661},
 acmid = {2930661},
 publisher = {ACM},
 address = {New York, NY, USA},
 keywords = {Physical simulation languages, compilation, performance},