As the computer industry has moved to multicore processors, the historic trend of exponential performance improvements will now depend on ordinary programmers and their ability to parallelize their code. However, most programmers are already overwhelmed by the complexity of modern software and are unwilling to expend extra effort on parallelization. Hence, for programmers to embrace a parallel abstraction, we believe that it must come with new capabilities--unrelated to parallelism--that simplify application development and lure programmers into changing their ways.
In this talk, I will describe stream programming: an inherently parallel model that also offers powerful new capabilities for the domain of multimedia, graphics, and digital signal processing (DSP). Programs with a streaming structure are naturally parallelized on a multicore target. At the same time, streaming language abstractions enable the compiler to automate tasks that are typically performed by a DSP expert, including whole-program algebraic simplification and translation from the time domain to the frequency domain. By automating such transformations, stream programming reduces the overall burden on programmers and enables them to transition to the multicore era.
Bill Thies is a Ph.D. candidate at the Massachusetts Institute of Technology, where he is a member of the Computer Science and Artificial Intelligence Laboratory. His research focuses on programming languages and compilers for emerging technologies, from multicore architectures to microfluidic chips. He is also interested in creating appropriate information technologies for use in developing countries. Bill earned a B.S. in computer science, a B.S. in mathematics, and an M.Eng. in computer science, all from MIT.