StreamIt - A Programming Language for the Era of Multicores
For the last four decades, a byproduct of Moore's Law has been the continuous and dramatic increase in the performance of sequential applications. Unfortunately, in the current and future generations of processors, doubling the number of transistors is not leading to any increase in sequential performance due to power and complexity issues. Thus, all major processor vendors are moving towards multicore processors. While architects have known how to build parallel processors for over a half a century, the main stumbling block for their wider acceptance has been the difficulty in programming them. In the first part of the talk I will discuss the path to multicores, address why parallel programming has been such a difficult problem to solve and speculate on our ability to crack it this time around.
One promising approach to parallel programming is the use of novel programming language techniques -- ones that reduce the burden on the programmers, while simultaneously increasing the compiler's ability to get good parallel performance. In the second part of the talk, I will introduce StreamIt: a language and compiler specifically designed to expose and exploit inherent parallelism in "streaming applications" such as audio, video, and network processing. StreamIt provides novel high-level representations to improve programmer productivity within the streaming domain. By exposing the communication patterns of the program, StreamIt allows the compiler to perform aggressive transformations and effectively utilize parallel resources. StreamIt is ideally suited for multicore architectures; recent experiments on a 16-core machine demonstrate an 11x speedup over a single core.
Saman Amarasinghe is an Associate Professor in the Department of Electrical Engineering and Computer Science at Massachusetts Institute of Technology. He leads the Commit compiler group and is the co-leader of the MIT Raw project. Under his guidance, the Commit group innovated and developed the StreamIt language and compiler for the streaming domain, Superword Level Parallelism for multimedia extensions, DynamoRIO dynamic instrumentation system, Program Shepherding to protect programs against external attacks, a theoretical framework to unify parallelism and storage optimization, and Convergent Scheduling and Meta Optimization that uses machine learning techniques to simplify the design and improve the quality of compiler optimization. His research interests are in discovering novel approaches to improve the performance of modern computer systems without unduly increasing the complexity faced by application developers, compiler writers, or computer architects. Saman is also the founder and currently the Chief Technology Officer of Determina Corporation, which is productizing Program Shepherding. Saman 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.