Simit: A Language for Computing on Sparse Systems when Performance Matters

3 334
27.1
Опубликовано 26 августа 2016, 0:19
It is hard to write fast code. From the early days of computing at Los Alamos, many researchers have spent their lifetime getting performance out of critical simulation codes. Moreover, they are often left to get this performance single handedly, without enough help from languages, compilers and tools. In this talk I will introduce Simit, a new language for computing on sparse systems using linear algebra, with applications to physical simulation and more. Simit lets the programmer seamlessly work on a physical system both as individual geometric elements in a hypergraph, and as the behavior of the entire system in the form of global vectors, matrices and tensors. Simit provides a novel assembly construct that makes it conceptually easy and computationally efficient to move between these two abstractions. Using the information provided by the assembly construct, the compiler generates efficient in-place computation on the graph. As a result, Simit programs are typically shorter than Matlab programs yet are competitive with hand-optimized code and also run on GPUs.
автотехномузыкадетское