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, where he is a Professor of Computer Science. He chaired the department from 1986-93 and again in 2006-07. From January 2003 to January 2005 he worked in the computing directorate at the National Science Foundation, 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).
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).
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. Recent work developed Filaments, a software package that supports shared memory and efficient fine-grain parallelism on a variety of parallel machines. His current project is Solar---software optimization at link- and run-time---which is using binary rewriting to improve software performance for many kinds of applications and architectures (e.g., parallel programs on Pentiums).
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 keeps trying to get ready for the PGA Senior Tour, but his
"friends" tell him the tour already has enough caddies.
At least his handicap is less than his shoe size :-)
Current Class: CSc 522, Parallel and Distributed Computing
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
Picture Gallery: pics
Last updated: February 14, 2008