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