Monday, November 30, 2009
11:00 AM
Computer Studies Bldg. Room 209
Dr. Arun Chauhan
Indiana University
Higher-Level Programming on Parallel Computers: Sweetening the Deal for Users (and Making Compilers Work Harder)
A recent article in Communications of the ACM proposed that programming be considered the fourth 'R of literacy. Several eminent computer scientists have also started campaigning for treating computer science as a fundamental field of science. The core premise behind both is that today computational methods have become a cornerstone of problem solving in a diverse set of domains. A consequence of this is an explosion in the number and variety of high performance applications. Novel domain-specific high-level languages have been invented to satisfy the new base of users, who are often not expert programmers. This has resulted in a challenging problem for programming language implementers---an increasingly diverse set of users wanting to write high performance applications on the one hand, and a moving target of complex modern computers on the other.

We need better software tools---compilers, in particular---to bridge this widening gap between modern highly abstract programming languages and sophisticated heterogeneous hardware architectures. At IU we are engaged in addressing this problem on several fronts. In this talk I will focus on two. I will argue that we need to dramatically change our way of thinking about programs to be able to build more capable compilers, by moving the focus from counting the number of computational steps to paying attention to data access patterns. I will propose a model to analyze such patterns and a method to implement it. I will then extend the problem to the analysis and optimization of parallel programs and propose a novel approach to specifying parallelism that complements the earlier analysis. This allows the compiler to focus on what it does best---optimizing programs, freeing the human users to do what they do best---optimizing domain-specific algorithms.

Bio: Arun Chauhan got a Bachelors in Electrical Engineering and Masters in Computer Science from the Indian Institute of Technology, Delhi. After a stint in marketing and another programming parallel machines, he returned to school to get a PhD from Rice University. Since 2006 Arun Chauhan has been an Assistant Professor at the School of Informatics and Computing at Indiana University. His primary research interests are in compiling, parallel computing, and high-level programming languages.

Refreshments provided at 10:45 AM