Tuesday, November 15, 2016

New Language for Programming Efficient Simulations

    In a collaboration between MIT, Adobe, the University of California at Berkeley, the University of Toronto, Texas A&M, and the University of Texas, researchers have developed a new programming language that improves the way simulation programs are designed. This new language, named Simit, is designed to cut the length of code required to produce a simulation while sustaining the desired level of complexity. In the graphics community, a persistent problem is finding balance between complexity and efficiency. For instance, in a research program that models a ball bouncing against obstacles, this trade-off might mean that instead of an advanced collision response algorithm, a simple reciprocal velocity model is implemented. While the collision response algorithm may make the simulation more complex and realistic, using simple reciprocal velocity will allow the simulation to run at a faster speed.

simit programming language simulation


     These researchers are attempting to make this compromising issue nonexistent by only requiring the programmer to lay out the "translation between the graphical description of the system and the matrix description" once, and then allowing them to use the "language of linear algebra" to program the simulation further. In this way, Simit only reads instructions from linear algebra to the language of graphs instead of complex graphs to matrices and vice versa. (1)

     Another major challenge when looking at graphics programming is that each computer handles it differently. One model may run the simulation at unacceptably slow speeds, while another computer may run it at a perfect 60fps. Additionally, the simulation may have to be written in different languages to accommodate different systems. By creating a language specifically meant for graphics, Simit reduces this extra work when moving between systems. When Simit-run simulations were tested against the same simulation in different languages, Simit consistently performed better than its opponent - in fact, between 4 and 20 times as fast.

Sources:
1. https://www.eecs.mit.edu/news-events/media/user-friendly-language-programming-efficient-simulations
Images:
1. https://fossbytes.com/simit-new-programming-language-fast-computer-simulations/

2 comments:

  1. It is amazing how much more specialised programming languages are becoming. This reminds me of another recently developed programming language, Julia, that combines the speed of C/C++ with the data analytic capabilities of Python, R or MATLAB.

    ReplyDelete
  2. That's great news for graphics research! I'm still slightly confused what does it mean for SIMIT to "reads instructions from linear algebra to the language of graphs instead of complex graphs to matrices and vice versa". Matrices are part of linear algebra, right? So is the difference between SIMIT and traditional programming languages is that it's a one-way method instead of two-way? I'm just not sure how exactly could they accomplish this. But I could dig deeper to understand more about the technical details :) Thanks for the great post!

    ReplyDelete