Research Project Title:
Unlocking the Potential of Multicore Systems
abstract:Though multicores are widely used, multicore programming is difficult. To ameliorate this problem, people have developed auto-parallelizing compilers. However, these compilers have seen limited success because they must check for data dependencies affecting the order in which tasks must run. Swarm is a new multicore architecture with an execution model based on small scheduled tasks. It parallelizes programs by executing these tasks speculatively and out of order. For this project, we aim to improve the Swarm compiler’s ability to parallelize a sequential program, using Swarm’s ability to parallelize without proving properties about the program beforehand. We’ll start by identifying common bottlenecks, and then explore more strategies for breaking programs into small, parallelizable tasks.
I’m participating in SuperUROP because I’m interested in multicore programming and looking to gain more research experience. I have taken 6.172 (Performance Engineering) and 6.816 (Multicore Programming), which have given me a sense of the potential and limitations of multicore programming, making this project all the more exciting. I’m looking forward to both working on the Swarm compiler and getting a fuller picture of what researching is like.