education
- Ph.D. Electrical Engineering, January 1997
University of Illinois at Urbana-Champaign.
Advisor: Wen-mei Hwu
Thesis title: Exploiting Instruction-level Parallelism in the Presence of Conditional Branches - M.S. Electrical and Computer Engineering, May 1992
University of Illinois at Urbana-Champaign.
Advisor: Wen-mei Hwu
Thesis title: Design and Implementation of a Portable Global Code Optimizer - B.S. Electrical and Computer Engineering, May 1988
University of Illinois at Urbana-Champaign.
Work experience
I worked in industry for six years before coming to Michigan. Interestingly, I interviewed in the EECS Department at Michigan in 1994, and had an offer to join. But, I decided that I wanted to work in industry for a while to see what the real world was like. So, I joined the Compiler and Architecture Research Group at Hewlett-Packard Laboratories in Palo Alto, CA headed by Bob Rau. I was there from 1995 to 2001. Here are some of the projects I worked on when I was at HP:
- Compilation for Explicitly Parallel Instruction Computing Processors - The group developed a prototype compiler backend targeted to processors similar to the IA-64. Some of the things I worked on include if-conversion, region formation, instruction scheduling, control/data height reduction optimizations, and synthetic branch prediction.
- Trimaran - Together with the IMPACT and CREST research groups, we released a compilation infrastructure known as Trimaran to facilitate ILP compiler research. Trimaran is still used today by many research groups including my own.
- PICO - In 1997, my group at HP shifted focus from IA-64 to embedded processors, where we focused on automatic design of custom embedded processors and hardware accelerators. PICO, or Program-In Chip-Out, is the name of our prototype system. Several members of the PICO team left HP and started a company called Synfora to productize the PICO technology.
Prior to 1995, I was a graduate research assistant at the University of Illinois at Urbana-Champaign. I worked with Prof. Wen-mei Hwu and helped create the IMPACT compiler. You may notice that I did not officially graduate from Illinois until January 1997, and probably wonder what's up with this?? Well, I really finished in 1994 as I passed my final defense in November 1994, but I left without completing my dissertation (big mistake!). To make a long and somewhat painful story short, it took me 2 years to finish the writing after I left (1.9 years of procrastination and 0.1 years of writing). So, I did not officially get my diploma until January 1997.
Professional Activities
I tried to list all of them, but I am sure I forgot some. Clearly, I spend way too much time reviewing papers!
Associate Editor Positions
- ACM Transactions on Architecture and Code Optimization, 2004 - present
- Journal of Instruction Level Parallelism, 2003 - present
Conference/workshop chair positions
- General Co-Chair, 5th Intl. Symposium on Code Generation and Optimization, 2007
- Program Co-Chair, 39th Intl. Symposium on Microarchitecture, 2006
- General/Program Co-Chair, Optimizing Compiler Assisted SoC Assembly Workshop, 2005
- Program Co-Chair, 2004 Intl. Conference on Compilers, Architecture, and Synthesis for Embedded Systems, 2004
- Finance Co-Chair, 2nd Intl. Symposium on Code Generation and Optimization, 2004
- Publicity Chair, 3rd Workshop on Application Specific Processors, 2004
- Student Travel Grants Chair, 2003 Intl. Conference on Compilers, Architecture, and Synthesis for Embedded Systems, 2003
- Program Co-Chair, 35th Intl. Symposium on Microarchitecture, 2002
- Architecture Track Chair, 2002 Intl. Conference on Compilers, Architecture, and Synthesis for Embedded Systems, 2002
- Workshop and Tutorial Chair, 34th Intl. Symposium on Microarchitecture, 2001
- Publicity Chair, 33rd Intl. Symposium on Microarchitecture, 2000
Conference program committee memberships
- Intl. Symposium on Computer Architecture: 2002, 2008
- Intl. Symposium on Microarchitecture: 1997, 1999, 2003, 2004, 2007
- Intl. Symposium on High Performance Computer Architecture: 2006-8
- Intl. Conference on Programming Language Design and
Implementation:
2005 - Intl. Symposium on Code Generation and Optimization: 2003-6, 2008
- Intl. Conference on Parallel Architectures and Compilation Techniques: 2000, 2003, 2005
- Intl. Conference on Supercomputing: 2003
- Intl. Conference on Compilers, Architecture, and Synthesis for Embedded Systems: 2003, 2005-7
- Intl. Conference on Hardware/Software Codesign and System Synthesis: 2005-7
- Design Automation and Test in Europe Conference: 2005-6
- Intl. Conference on Computer Design: 2004-5