I received my bachelor's degree in computer science from the CS Dept. at the University of Ky., and my masters and Ph.D. degrees from the University of Il. at Urbana-Champaign., in 1986 and 1992, respectively. My research focused on the automatic generation and optimization of fine-grained producer/consumer synchronization and the analysis of explicitly parallel programs. While at the U of I I also spent two years working full time on the Cedar Fortran Compiler. I am currently an Assistant Adjunct Prof. in the Dept. of CS at UIUC.
After graduating, I became a Research Staff Member at the T.J. Watson Research Center, where I helped developed the xlfHPF compiler for High Performance Fortran, receiving a Research Outstanding Technical Achievement award for my efforts. After completing that work, I joined the Parallel Servers Group. At this time Jose Moreira, Manish Gupta and myself started the Ninja (Numerically Intensive Java) project. This project investigated the optimization of array reference checks, the efficient implementation of new data types and operations defined as standard classes, and the optimization of the synchronization and allocation of Java Objects.
After the Ninja project was finished, Manish Gupta, Rajesh Bordawekar, Mauricio Serrano and myself started the Quicksilver project, which developed a quasi-static compiler (i.e. a static compiler that falls back to dynamic compilation if necessary to enforce correctness due to Java's dynamic requirements) built using the Jikes RVM.
During the same time frame I was working with David Padua, Jaejin Lee, and students David Wong, Zehra Sura and Xing Fang on the Pensieve project. The Pensieve project is building a compiler in which the memory model as well as programs are input. This tool will be used to prototype memory models as well as run experiments on the relative efficiency of different memory models, using the same compiler infrastructure and the same optimizations
In the summer of 2002 I left the IBM T.J. Watson Research Center to take a position as an Associate Professor in the Department of Electrical and Computer Engineering at Purdue University. At Purdue, I will pursue research in the interaction of memory models and compilation, compilation for faulty systems and general issues around the detection and expression of parallelism in numerical and non-numerical programs.
Return to Sam Midkiff's Home Page