My research interests span computer architecture,
compilers, and programming languages. Let me take
this opportunity to share with you what I have been doing and what I
want to do next.
What I am doing for my Ph.D.:
My Ph.D. thesis is on Optimizing the Cache Performance of
Non-Numeric Applications, advised by Prof. Todd C. Mowry. This is
a very important problem to address for three major reasons:
Non-numeric codes are common
Cache performance (both instructions and data) of
non-numeric codes is unsatisfactory
Research in this area has been lacking, somehow reflecting the
difficulty of this problem
My study has contributed a number of software and hardware techniques
for improving the cache performance (and hence overall performance) of
non-numeric codes. These techniques include:
Instruction prefetching
Data prefetching
Cache miss profiling
Data layout optimizations
They are characterized by both their novelty and practicality. If you
are really interested in knowing more about them, check with my thesis
contributions here.
What I did for my Masters:
I designed a multiparadigm language and implemented a prototype of it,
under the supervision of Prof. Kam-Wing Ng. My language named I+ integrates three attractive
programming paradigms: object-oriented, logic, and functional. In
addition to the design and implementation issues, my masters thesis
also demonstrates some potential applications that could be
effectively written using I+.
What I want to do next:
There are quite some problems that I want to learn and hopefully to
tackle eventually. I am particularly interested in the following few:
Memory performance
Cache-conscious data structures
Data prefetching techniques for non-numeric codes
Techniques for better use of limited memory bandwidth
Specific-purpose processors
Multi-media
Network processing
Hardware and software (compilers and operating systems) techniques for minimizing power consumption