Computer Science and Engineering, Lehigh University
I am interested in runtime and operating systems, languages, and processor and memory architecture, with an emphasis on simplifying the development of correct multithreaded applications.
Focus Area: Transactional Memory (TM): TM is a promising alternative to locks when writing explicitly parallel programs that share data. There are many open issues in TM, to include language integration, OS support, hardware acceleration, interaction with garbage collection, condition synchronization, and performance profiling. There are also many opportunities to extend and improve upon existing work. An excellent source of information is the Rochester High-Performance Synchronization website. The most recent code is available at the TransMem repository. Older code is available through the RSTM respository.
Focus Area: Concurrent Data Structures: I have also developed a number of interesting concurrent data structures, which allow for low-overhead communication in explicitly concurrent programs. Our work to date includes lists, priority queues, hash tables, and other data structures. We have also developed a novel technique for using hardware transactional memory to accelerate nonblocking data structures.
Focus Area: Speculative Parallelization: While STM is a very promising idea, it does little to help existing software to harness parallel resources. One option in this area is Thread-Level Speculation, which speculatively parallelizes code while preserving sequential semantics. This can be done entirely in software, though it takes clever algorithms and compiler support to achieve low enough overhead.
Other Topics: I am interested in many other areas, to include OS support for explicit and implicit parallelism, the design of parallel allocators and garbage collectors, hardware mechanisms to improve inter-process communication, the design and implementation of new parallel languages, and programming models for cloud-based systems.
If you are a graduate student at Lehigh and you are interested in any of these topics, please get in touch with me immediately so that we can discuss our mutual interests and see if we should start working together.
If you are an undergraduate student at Lehigh and you are interested in any of these topics, please get in touch with me as early as possible during the fall semester. I have a number of research projects that you may be able to get involved in, either as a senior project, as a summer internship, or just for fun. I would also be happy to give advice about pursuing a graduate degree in Computer Science.
If you are not currently at Lehigh, but you would like to perform research in one of these areas while you pursue a PhD in Computer Science, then you should also get in touch with me as early as possible during the fall semester, so that I can advise you about applications.
If you are not currently a student, but you think you might want to go back to school and earn a PhD in Computer Science, then you should get in touch with me even if you have no idea what "parallelism" means. I spent five years in the U.S. Air Force before starting my PhD, and my experiences and opinions may help you decide whether or not to leave the work force to go to grad school. If you are currently active duty military and you are thinking about pursuing a PhD, either through your branch of service or as a civilian, then you will probably find my experiences particularly helpful as you decide on the next phase of your career.