MIT EECS Undergraduate Research and Innovation Scholar
Parallel Code Generation with LLVM
Saman P. Amarasinghe
As supercomputers are becoming increasingly complex in terms of their hierarchical designs and interconnection networks, the problem of determining optimal data distributions for parallel programs is becoming more difficult. Existng models for autoparallelizing compilers are too simple to always generate the best data distribution. Instead, the Commit group in CSAIL is working on a system that automatically generates all possible data distributions from parallel code. This extension will consist of a set of macros that describe parallel code to the LLVM Intermediate Representation (IR) and a set of rules for compiling code modules to this new Parallel LLVM IR. My goal for this new interface is to be simple, minimal and backwards compatible with the existing LLVM IR.
I have done Undergraduate Research on Computer Systems in the past year, optimizing parts of the linux kernel in terms of performance and security. I have also written parallel daemons that were fast, optimal and thread-safe. As an intern at Intel in the summer of 2014 I worked on new computer architectures, writing code optimized for energy dissipation.