Keynote 2


Multicores from the Compiler's Perspective: a Blessing or a Curse?

Saman Amarasinghe
Associate Professor, Massachusetts Institute of Technology
CTO, Determina Corporation



With all major processor vendors building multiple processor cores on a single chip, multicores is the next tour-de-force in computer architecture. The upside of multicores is enormous. The ability to parallelize and execute applications on multiple cores provides an opportunity to get the processor performance back on track with the Moore's law. However, achieving pervasive and scalable parallelism has been the holy grail for many computer scientists from the time of ILLIAC-IV, an illusive dream that was never fully realized.

In this talk I will examine how the problem has changed due to the current technology and business factors. I will analyze the seismic changes in computer architecture that lead to multicores and their impact on compilation. Next, I will review different facets of the multicore compiler problem using three case studies - Coarse Grain Parallelism from the perspective of the SUIF parallelizing compiler, Instruction Level Parallelism with the RAW ILP compiler, and Language Exposed Parallelism using the StreamIt language and compiler. Finally, I'll attempt to answer the ultimate question: With multicores, can we finally realize the dream that has eluded us for so long?



Saman P. Amarasinghe is an Associate Professor in the Department of Electrical Engineering and Computer Science at Massachusetts Institute of Technology and a member of the MIT Laboratory for Computer Science. He received his BS in Electrical Engineering and Computer Science from Cornell University in 1988, and his MSEE and Ph.D from Stanford University in 1990 and 1997, respectively. He leads the Commit compiler group and is the co-leader of the MIT Raw project. Currently he is on leave from MIT and is the CTO of Determina Corporation, which is productizing a novel approach against worm attacks that was developed in his group. His research interests are in discovering novel approaches to improve the performance of modern computer systems without unduly increasing the complexity faced by either application developers, compiler writers, or computer architects.