Greg Andrews

Greg received a B.S. in Mathematics from Stanford University in 1969 and a Ph.D. in Computer Science from the University of Washington in 1974. From 1974-79 he was an Assistant Professor at Cornell University. Since 1979 he has been at The University of Arizona, as Associate Professor (1979-87), Professor (1987-2010), and now Professor Emeritus. He chaired the Department of Computer Science from 1986-93 and again from 2006-08. From January 2003 to January 2005 he worked in the computing directorate at the National Science Foundation (NSF), first as Division Director of Experimental and Integrative Activities (EIA), and then as the initial Division Director of Computer and Network Systems (CNS).

Greg received a distinguished teaching award in 1986 and a career distinguished teaching award in 2002, both from the College of Science at The University of Arizona. In 1998 he was named a Fellow of the Association for Computing Machinery (ACM). In 2010 he was given the inaugural Alumni Achievement Award by the Department of Computer Science and Engineering at the University of Washington.

Greg was on the editorial board of Information Processing Letters from 1979-99. He was the general chair of the Twelfth ACM Symposium on Operating Systems Principles in 1989 and has been on the program committees of numerous conferences. From 1988-92 he was on two advisory committees for the computing directorate of the National Science Foundation. From 1991-98 he was on the Board of Directors of the Computing Research Association (CRA), and from 1998-2002 he served on CRA's undergraduate award selection committee (two years as chair). From 2006-09 he was on the Council of the Computing Community Consortium, which is charged with fostering the development of innovative computing research visions.

Greg's research interests include all aspects of parallel and distributed computing: languages, applications, "systems" issues, and performance. A long-term project has been the design and implementation of the SR programming language and its new variant MPD. Work in the 1990s developed Filaments, a software package that supports shared memory and efficient fine-grain parallelism on a variety of parallel machines. For the past several years, he has worked with Saumya Debray and dozens of students on the Solar project (software optimization at link- and run-time), which uses binary rewriting to improve software properties---e.g., performance, size, or security---for many kinds of applications, including parallel programs, embedded systems, and OS kernels.

Greg is currently working with students on a simple, lightweight approach to writing parallel programs for multicore machines, and on a system to enable reproducibility of software experiments. He is also on the faculty advisory team for the iPlant project, a $50M grant from the NSF to build cyberinfrastructure that enables the solution of grand-challenge problems in the plant sciences.

Greg has written three books (one with Ron Olsson). Click on a thumbnail below for a larger image of a cover.

Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming, Addison Wesley, 2000. The book's Web site contains an "instructor's manual" and a variety of other materials. Also available is the MPD programming language, a variant of SR that has a syntax very close to the one used in the book. The book is now in its third printing; it has also been translated into Russian.

Andrews, Concurrent Programming: Principles and Practice, Benjamin/Cummings, 1991. The book is now in its fifth printing. Errata sheets are available for the first and second printings.

Andrews and Olsson, The SR Programming Language: Concurrency in Practice, Benjamin/Cummings, 1993. The book is now in its third printing. The major change from the first printing is the addition of Appendix G , which describes a few new language features. See the SR Web site for online documentation.

When he's not at work or home, Greg can often be found at some golf course. He would have liked to join the PGA Senior Tour, but they already have enough caddies.

Most Recent Class: CSc 422, Introduction to Parallel and Distributed Programming

Curriculum Vitae: Postscript or PDF

Phone Numbers: 520-621-4239 (office); 520-621-4246 (FAX)

E-Mail: greg "at"

Snail Mail: Dept. of Computer Science, Gould-Simpson 721, P.O. Box 210077, Tucson, AZ 85721-0077

Last updated: July 6, 2010