Finding a New Language for Software Design
21-08-2017 | Posted by Principia
When it comes to major issues facing the future of simulation software and computer-aided design (CAD), companies realize that cost and availability are two of the most important features to consider. However, they also happen to be two of the most complicated issues to talk about. In order to provide better software, faster updates, and more efficient products, software developers have to spend months crafting the perfect code—and consumers know that’s a large part of the price they pay. But some researchers are finding that the future of simulation software may be better for consumers and software companies if we learn to find a new way to talk about code.
Traditionally, more complex solutions have required more complex code, as multiple coding languages are required at different stages of the design process. Simulating everything from large-scale environmental conditions all the way down to microfractures, engineers and computer programmers must translate between low-level and high-level descriptions needed for computers to run accurate simulations. These descriptions are divided into two categories: data that requires description using graphs and data that requires description using linear algebra.
But mathematically it is difficult for programmers to juggle the two languages, and computers also find it taxing to alternate between these very different levels of description. For that reason, researchers believe that finding a single coding language that is capable of both levels of description can not only simplify software code, but also improve systems by lowering stress on computers.
To find this new language, software companies in the private industry are working with researchers in academia to find novel solutions that can benefit computer programmers around the world.
One such collaboration was recently published in the Journal ACM Transactions on Graphics, and researchers believe that new experimental languages may have direct applications in the simulation software industry today.
“Making a simulation run fast often requires painstakingly specific rearrangements to be made to the code” says Chris Wojtan, a professor at the Institute of Science and Technology Austria. “To make matters worse, different code must be written for different computers.”
Researchers at MIT partnered with colleagues at Adobe, Disney Research and other top-ranking universities across the United States to develop what they are calling “Simit”—a language for physical simulation that has the ability to drastically change coding as we know it. Simit simplifies the problem of alternating between two levels of description by asking its programmer to describe the translation from graphs to matrices—then the programmer can simply use linear algebra to program the simulation. Not only does this make it easier to code, but it also saves a lot of time and effort that can directly translate to more frequent software updates.
“Simit [and other experimental simulation languages] aim to handle all of these frustratingly specific optimizations automatically, so programmers can focus their time and energy on developing new algorithms.”
“The story of this paper is that the trade-off between concise code and good performance is false,” says Fredrik Kjolstad, MIT graduate student and lead author of the paper describing the new coding language in the Journal ACM Transactions on Graphics. “It’s not necessary, at least for the problems that this applies to. But it applies to a large class of problems.”
After creating the new language, researchers tested Simit by translating existing code from companies like Google, and what they found was that the new language could reduce necessary code by up to 90% while also improving computer simulation speeds up to 200x faster.
While these new coding languages are still experimental, they present a possible solution to the growing number of problems facing costs and the speed at which new software is developed. And by working with researchers in academia, simulation software companies are finding that new coding strategies and languages can help increase simulation speeds and lower overall costs in developing powerful new tools for engineers.