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" cs.arizona.edu Snail Mail: Dept. of Computer Science, Gould-Simpson 721,
P.O. Box 210077, Tucson, AZ 85721-0077
Last updated: July 6, 2010