Saman Amarasinghe (Massachusetts Institute of Technology)


PetaBricks: A Language and Compiler based on Autotuning


We have always known that a given problem can be solved using multiple algorithms; and the best solution for each input or architecture may require a different algorithm. However, currently there is no simple way for the programmer to express or the compiler to take advantage of all the available algorithmic choices for a problem. In this talk I will present PetaBricks, a new implicitly parallel language and compiler where having multiple implementations of multiple algorithms to solve a problem is the natural way of programming. The PetaBricks compiler autotunes programs by making the best fine-grained algorithmic choices. Choices also include different automatic parallelization techniques, data distributions, algorithmic parameters, transformations, and blocking.