Parallel Profile - John Mellor-Crummey
Senior Faculty Fellow, Department of Computer Science, Rice University
John Mellor-Crummey began his college education at Princeton University with the intent of becoming a chemical engineer. "In my first semester, I enrolled in a course on numerical analysis and computation," he says. "Before that course was over, I realized that computing itself fascinated me even more than engineering. From that point onward, I focused on preparing myself for a career in applied computer science."
Mellor-Crummey graduated magna cum laude from Princeton University in 1984 with a B.S.E. in electrical engineering and computer science. He continued his studies at the University of Rochester, where he received his M.S. and Ph.D. degrees in computer science in 1986 and 1989. In 1989, he joined Rice University as a Research Associate in the Department of Computer Science and the CRPC. He became a Faculty Fellow in 1992 and was named Senior Faculty Fellow in July of this year.
Mellor-Crummey's research has focused on software support for parallel computation, with the goal of developing practical software techniques that make it possible to harness parallel computers efficiently. Of particular emphasis have been software technologies to support large-scale scientific computations. His work has concentrated on synchronization algorithms for efficiently coordinating computation on shared-memory multiprocessors; techniques for isolating errors in parallel programs (parallel debugging); and compilers and tools to support development of high-performance parallel programs.
"My most widely recognized work to date has been the design of efficient software synchronization algorithms for shared-memory multiprocessors," he says. "These algorithms have been widely used in practice, studied as a principal point of comparison for proposed hardware synchronization primitives, and have influenced the design of general-purpose hardware support in shared-memory architectures."
In the area of parallel debugging, Mellor-Crummey has developed techniques for efficiently capturing and replaying executions of parallel programs, an asymptotically efficient protocol for automatically detecting and pinpointing conflicting unsynchronized accesses to shared data by shared-memory parallel programs, and an integrated compiler and run-time system that supports the detection of such unsynchronized accesses.
"Debugging parallel programs is notoriously difficult because any two executions of the same program can have different outcomes, depending on the precise interleaving of operations executed by each of the processors," he says. "The principal strategy for debugging sequential programs consists of executing a program until errors are observed, and then gathering more detailed information about the observed errors in a series of subsequent identical re-executions until the errors are isolated. I developed techniques that enabled this debugging methodology to be extended effectively to parallel programs."
Over the past several years, Mellor-Crummey has worked on developing compilers and tools for parallel computing. His initial work was on tools to support programming in Fortran D, a precursor to High Performance Fortran (HPF) developed at Rice. Over the past two years, he and CRPC researcher Vikram Adve have lead the DARPA-funded dHPF compiler project. "The aim of this project is to develop compilation technology for data-parallel languages that addresses three principal challenges," Mellor-Crummey explains. "These are to develop better program optimization technology, to develop techniques to target a wide range of architectures effectively, and to investigate compiler support for new features that broaden the applicability of data-parallel languages."
In addition to conducting his own research, Mellor-Crummey has served on numerous Ph.D. and M.S. committees. He was chairman of the Rice Computer Science Department Industrial Affairs Program from 1990 to 1994 and has served as chairman of the department's Facilities Committee since 1993. He is a member of the CRPC Technical Steering Committee, the Computer and Information Technology Institute (CITI) Steering Committee, the ACM, and the IEEE Computer Society. He has been a speaker and served on program committees for numerous conferences and other professional events, and is the author or co-author of more than 40 papers.
Of his career with the CRPC, Mellor-Crummey says, "The CRPC has provided a rich environment in which to work. Interaction with other people in the center, both at Rice and other sites, has been instrumental in shaping the directions of my research. If I had been asked several years ago what I would be doing today, I doubt if I could have predicted I would be working on parallelizing computers for HPF."