CV

Gregory D. Benson

Professor


Department of Computer Science
College of Arts and Sciences
University of San Francisco
2130 Fulton Street
San Francisco, CA 94117-1080

benson [@] usfca [.] edu
tel: (415)422-5066
fax: (415)422-5800

Research Interests

My interests include parallel and distributed computing, system software, run-time systems, operating systems, and programming languages. For the last 18 years I have worked on run-time systems for parallel computing, including thread systems, communication systems, and kernel support.

Education

Ph.D. in Computer Science, University of California, Davis; 1993-1999.
M.S. in Computer Science, University of California, Davis; 1991-1993.
Summer Graduate Program, University of Jyvaskyla, Finland; 1991.
B.S. in Computer Science, University of California, Davis; 1987-1991.

Experience

Director of Research, SnapLogic, Inc. 2009-present.
Professor, University of San Francisco; 2008-present.
Chair, Department of Computer Science, University of San Francisco; Fall 2005-Summer 2009.
Associate Professor, University of San Francisco; 2004-2008.
Assistant Professor, University of San Francisco; 1998-2004.
Research Assistant, University of California, Davis; 1991-1998.
Visiting Researcher, University of Utah; January 1997-June 1997,
  Worked with Jay Lepreau and the Flux research group.
Visiting Researcher, Vrije Universiteit, Amsterdam, The Netherlands; March 1996-June 1996,
  Worked with Henri Bal and the Orca research group.
Lecturer, University of California, Davis; Spring 1995.
Teaching Assistant, University of California, Davis; Spring 1994 and Summer 1994.
Programmer, Institute of Governmental Affairs, University of California, Davis; 1990-1991.
Programmer and Lab Manager, Robotics Laboratory, University of California, Davis; 1989-1991.
Programmer, Smith Micro Software, Inc., Aliso Viejo, California; 1985-1988.

Significant Projects

River: Reliable Virtual Resources River is a parallel and distributed programming environment written in Python. The River core interface is based on a few fundamental concepts that enables the execution of code on multiple virtual machines and provides a flexible mechanism for communication. These concepts are supported by the River run-time system, which manages automatic discovery, connection management, and naming. River can be used directly by an application programmer to implement parallel programs or it can be used as a framework for implementing programming models. We have found the simplicity and elegance of the River core combined with Python’s dynamic typing and concise notation make it easy to rapidly develop a variety of parallel applications and run-time systems. In addition, River has integrated support for checkpointing, migration, debugging, and monitoring. (see http://www.cs.usfca.edu/river, in progress)

FlashMob Computing I was a co-creator and implementor of a Linux-based system for temporary supercomputing. I worked on the OS infrastructure for our live CD, porting MPI implementations, and adapting Linpack. We held the first FlashMob Computing event on April 3, 2004 at the University of San Francisco. We connected 700 volunteer computers to construct an instant supercomputer. The event attracted international interest from the general public and academia. It resulted in significant media attention, including two New York Times articles (one on the front page), reports on internet news sites, radio interviews, and TV spots. ( http://www.flashmobcomputing.org, 2004)

USFMPI I was the principle investigator on a project to explore new implementation techniques for MPI. We developed a fully functional, but lightweight Linux-based MPI 1.2 library for TCP/IP and Myrinet clusters. Our target platform is clusters of multiprocessor nodes, so we used a multithreaded approach to separate computation and communication processing. For certain applications we achieved better performance than both MPICH and LAM. We also added static and dynamic mode switching for single threaded and multithreaded operation as well as for polling and blocking communication. For Myrinet, we implemented our own GM-based transport. (see publications, 2001-2004)

VPI I was the principle investigator for the Virtual Processor Interface, a library for building kernel-aware user-level thread systems. We modified the Linux kernel to support a form of scheduler activations. Our approach minimized the usage of processes found in a 1 to 1 thread implementation, but allowed maximum parallelism on true multiprocessors. (see publications, 1999-2003).

Mezcla For my dissertation I developed a source-level thread system generation tool. Unlike conventional thread packages, Mezcla enables a language implementor to generate specialized, light-weight thread systems based on the requirements of the run-time system and the functionality of the target platform. Mezcla can generate code for custom thread APIs and scheduling requirements. It will generate appropriate locking code for SMP targets, but eliminate locking on uniprocessors. (see publications, 1996-1998)

OSKit and xKernel I was a member of the Flux Research group at the University of Utah. I worked on the OSKit, a system for creating custom operating systems. I focused on adapting the OSKit to help create standalone language run-time systems. To support my OSKit implementation of the SR programming language, I developed an OSKit-based thread system and ported the xKernel for TCP/IP communication. ( http://www.cs.utah.edu/flux/oskit/, see publications, 1997)

SR I am a member of the SR project. I contributed to the implementation if SR concurrent programming language. (http://www.cs.arizona.edu/sr, 1996-present)

Publications in Preparation 

G. D. Benson and A. S. Fedosov, “River: A Foundation for the Rapid Development of Reliable Parallel Programming Systems,” To be submitted to Concurrency Practice and Experience.


Publications

G. D. Benson, “State Management for Distributed Python Applications,” In Proceedings of the 13th IEEE Workshop on Dependable Parallel, Distributed and Network-Centric Systems (DPDNS08), Miami, Florida, 2008.

G. D. Benson and A. S. Fedosov, “Python-Based Distributed Programming with Trickle,” In 2007 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’07), Las Vegas, NV, 2007.

A. S. Fedosov and G. D. Benson, “Communication with Super Flexible Messaging,” In 2007 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’07), Las Vegas, NV, 2007.

G. D. Benson, M. Butner, S. Padden, and A. Fedosov, “The Virtual Processor Interface: Linux Kernel Support for User-level Thread Systems,” In Proceedings of the 15th IASTED International Conference on Parallel and Distributed Computing and Systems, Marina del Rey, CA 2003.

S. G. Caglar, G. D. Benson, Q. Huang, and C. Chu, “USFMPI: A Multi-threaded Implementation of MPI for Linux Clusters,” In Proceedings of the 15th IASTED International Conference on Parallel and Distributed Computing and Systems, Marina del Rey, CA 2003.

G. D. Benson, C. Chu, Q. Huang, and S. G. Caglar, “A Comparison of MPICH Allgather Algorithms on Switched Networks,” In Proceedings of the 10th EuroPVM/MPI 2003 Conference, Venice, Italy, September, 2003.

G. D. Benson, K. Long, and P. Pacheco, “The Performance of Parallel Disk Write Methods for Linux Multiprocessor Nodes,” In Proceedings of the 10th EuroPVM/MPI 2003 Conference, Venice, Italy, September, 2003.

R. A. Olsson, G. D. Benson, T. Ge, and A. W. Keen, “Fairness in shared invocation servicing”, Journal of Computer Languages, Systems, and Structures, volume 28, pages 327-351, Pergamon, 2003.

S. B. Gehani and G. D. Benson, “xDU: a Java-based Framework for Distributed Programming and Application Interoperability,” in Proceedings of the 12th IASTED International Conference on Parallel and Distributed Computing and Systems, Las Vegas, Nevada, 2000.

G. Benson and R. Olsson, “A Framework for Specializing Threads in Concurrent Run-time Systems,” In Proceedings of 4th Workshop on Languages, Compilers, and Run-time Systems for Scalable Computers (LCR98), volume 1511 of Lecture Notes in Computer Science, pages 139-152. Springer-Verlag, Pittsburgh, PA, 1998.

B. Ford, G. Back, G. Benson, J. Lepreau, O. Shivers, and A. Lin, “The Flux OS Toolkit: A Substrate for Kernel and Language Research,” In Proceedings of the Sixteenth ACM Symposium on Operating System Principles, pages 38-52, St. Malo, France, October, 1997.

M. Haines, G. Benson, and K. Langendoen, “On the Design of Substrate Software,” In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pages 325-333, Las Vegas, NV, June 1997.

G. D. Benson and R. A. Olsson, “A Portable Run-Time System for the SR Concurrent Programming Language,” InProceedings of the Workshop on Run-Time Systems for Parallel Programming, IR-417, Department of Mathematics and Computer Science, pages 21-30, Vrije Universiteit, Amsterdam, The Netherlands, April 1997. In conjunction with with the 11th International Parallel Processing Symposium (IPPS’97).

G. D. Benson and R. A. Olsson, “Towards Microkernel Support for the SR Concurrent Programming Language,” InProceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pages 1513-1524, Sunnyvale, CA, August 1996.

T. Rühl, H. Bal, G. D. Benson, R. Bhoedjang, and K. G. Langendoen, “Experience with a Portability Layer for Implementing Parallel Programming Systems,” In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, pages 1477-1488, Sunnyvale, CA, August 1996.

G. D. Benson, R. A. Olsson, and R. Pandey, “On the Decomposition of Run-Time Support for Concurrent Programming Languages,” In Proceedings of the Workshop on High-Level Programming Models and Supportive Environments, held in conjunction with the 10th International Parallel Processing Symposium (IPPS’96), Honolulu, Hawaii, April 1996.

G. D. Benson and R. A. Olsson, The Design of Microkernel Support for the SR Concurrent Programming Language, chapter 17, pages 227-240. Languages, Compilers, and Run-Time Systems for Scalable Computers. Kluwer Academic Publishing, Boston, MA, 1996. B. K. Szymanski and B. Sinharoy (editors). Also in Proceedings of the Third Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers, Troy, New York, May 1995.

C. Zhang, R. Shaw, M. R. Heckman, G. D. Benson, M. Archer, K. Levitt, and R. A. Olsson, “Towards a Formal Verification of a Secure Distributed System and its Applications,” The 17th National Computer Security Conference, October, 1994.

C. Zhang, R. Shaw, R. Olsson, K. Levitt, M. Archer, M. Heckman, G. Benson, “Mechanizing a Programming Logic for the Concurrent Programming Language microSR in HOL,” HUG93 The HOL User’s Group Workshop, Vancouver, B.C., 1993.

G. D. Benson and A. Prieditis, “Learning Reward Functions in Real-Time for Continuous-Space Navigation,” From Animals to Animats: Second International Conference on Simulation of Adaptive Behavior, Honolulu, Hawaii, December 1992. (Abstract only).


Teaching

Courses Taught at the University of San Francisco
CS 326 Operating Systems (upper division); Fall 1998, Fall 1999, Fall 2000, Fall 2001, Fall 2002, Fall 2003, Fall 2005, Fall 2006, Spring 2007, Fall 2007, Fall 2008, Fall 2009.
CS 315 Computer Architecture (upper division); Spring 2000, Spring 2001, Spring 2002, Spring 2003, Spring 2004, Spring 2008.
CS 286 Computer Architecture (lower division); Spring 1999.
CS 486 Parallel Computing (upper division); Fall 2002.
CS 490/491 Senior Team Project (upper division); Fall 1998, Spring 1999, Fall 1999, Spring 2000, Fall 2006.
CS 625 Parallel and Distributed Computing (graduate); Fall 2002, Fall 2006.
CS 636 Operating Systems (graduate); Spring 2000, Spring 2002, Spring 2006, Spring 2009.
CS 315 Computer Architecture (graduate); Fall 2000.
CS 652 Programming Languages (graduate); Spring 2001.
CS 686 Implementing Concurrency (graduate); Spring 1999.
CS 650 Parallel Algorithms (graduate); Fall 1998.
CS 690 Masters Project (graduate); Spring 2001, Fall 2001.
Independent Study Courses Supervised at the University of San Francisco
Distributed System Implementation, Brian Hardie, Spring 2007.
Distributed System GUI, Tony Ngo, Spring 2007.
River Debugger Extension, Jennifer Reyes, Spring 2007.
River Monitor Extension, Joseph Guitierrez, Spring 2007.
Implementing MPI in River, Yiting Wu, Spring 2007.
Source Code Generation, Wen Dong; Fall 2002.
Linux Kernel Development, Shaun Padden; Fall 2001.
Java Tools for Classfile Manipulation, Jin Kim; Fall 2000, Spring 2001.
Implementing Threads for a JVM, Meghna Mehta; Fall 1999.
x86 Performance Analysis, Alex Fedosov; Fall 1999.
CPU Architecture, Nancy Montanez; Fall 1999.
Teaching at the University of California, Davis
Operating Systems (upper division) lecturer; Spring 1995.
Introduction to Software Development (lower division) teaching assistant; Summer 1994.
Software Engineering (upper division) teaching assistant; Spring 1994.

Service

Supervised Master Theses
 
Alex Fedosov, “River: Reliable Virtual Resources,” M.S. Thesis, Department of Computer Science, University of San Francisco. In progress.
Sadik G. Caglar, “An Implementation of MPI 1.2 for Linux Clusters,” M.S. Thesis, Department of Computer Science, University of San Francisco, 2003.
Samir B. Gehani, “A Java-based Framework for Explicitly Partitioning Applications into Distributable Units,”, M.S. Thesis, Department of Computer Science, University of San Francisco, 2000.
Professional Activities
USENIX Liaison for the University of San Francisco ( http://www.usenix.org/students/outreach.html), 1999-present.
Proposal Review Panel Member for the National Science Foundation (NSF) Course, Curriculum, and Laboratory Improvement (CCLI), Summer 2006
Program Committee Member for the International Conference on Distributed Computing Systems (ICDCS 2000), Taipei, Taiwan, April 10-13, 2000 ( http://www-cis.ohio-state-edu/~icdcs).
Program Committee Member for the 4th Workshop on Runtime Systems for Parallel Programming (RTSPP), Cancun, Mexico, May 1, 2000 ( http://www.cs.ucdavis.edu/~olsson/confs/rtspp/2000). To be held in conjunction with the 14th International Parallel and Distributed Processing Symposium (IPDPS 2000).
Program Committee Member for the 3nd Workshop on Runtime Systems for Parallel Programming (RTSPP), San Juan, Puerto Rico, April 12, 1999 ( http://www.cs.ucdavis.edu/~olsson/confs/rtspp/1999). Held in conjunction with the 13th International Parallel Processing Symposium (IPPS’99).
Co-Chair for the 2nd Workshop on Runtime Systems for Parallel Programming (RTSPP), Orlando, Florida, March 30, 1998 ( http://www.cs.ucdavis.edu/~olsson/confs/rtspp/1998). Held in conjunction with the 12th International Parallel Processing Symposium (IPPS’98).
Co-Chair for the Workshop on Runtime Systems for Parallel Programming (RTSPP), Geneva, Switzerland, April 5, 1997 (http://www.cs.ucdavis.edu/~olsson/confs/rtspp/1997). Held in conjunction with the 11th International Parallel Processing Symposium (IPPS’97).
Referee for:
ACM Computing Surveys
IPL - Information Processing Letters
ICDCS - International Conference on Distributed Computing Systems
ICPP - International Conference on Parallel Processing
HUG - The HOL (Higher Order Logic) User’s Group Workshop
Service to the Department of Computer Science at the University of San Francisco
Co-organizer for CS Night 2005, 2006, 2007, and 2008.
Department Chair; Fall 2005-Summer 2009.
Chair, Library Acquisitions Committee; 2001-2004.
Undergraduate advisor; 1999-present.
Faculty Search Committee; 1998-1999, 1999-2000, 2000-2001, 2001-2002 (hired Chris Brooks), 2004-2005 (hired Terence Parr), 2006-2007 (hired Sami Rollins).
Computer Support Committee; 1998-2004.
Graduate Program Committee; 1998-1999.
Service to the College of Arts and Sciences at the University of San Francisco
College Council, 2005-2009.
COSEC, 2005-2009.
Harney Science Extension Development Committee, Fall 2005-2009.
Lead Academic Advising Workshop for new Faculty, Spring 2007
Summer advising; 2000, 2001.
Science Open House; 2000.
Sciences Systems Administrator Search Committee; 2000.
New student phone-a-thon volunteer; 1999, 2000, 2001, 2002.
Major/minor fair volunteer; 1999, 2000, 2001, 2002, 2005.
Service to the University of San Francisco
USFFA Policy Board, 2005-2007.
USF ITS Communications Infrastructure and Security Subcommittee, 2005-2008.
Kudlick Classroom Design Committee. Significant contributor to the design of high-technology computer science classroom. Project budget: $2,500,000.00. Funded by the Chuang Family Foundation. 2001-2002.
ITS Communication Infrastructure Subcommittee, Fall 2005-2008.
University Information Technology Committee (UITC), 2000-2004.
UITC Network Security Subcommittee, 2002-2004.
Information Technology Users Committee (ITS Users), 1999-2000.
Talks
Bay Area Beowulf User Group (BayBUG), “Rapid Development of Parallel Systems and Applications in River”, April 17, 2007.
USF CS Reunion, “State of the Department”, Spring 2006.
USF Women in Science, “River: Reliable Parallel Computing”, Spring 2006.
HP Labs, “Rivers: Reliable Virtual Resources”, Spring 2006.

Awards and Honors

University of San Francisco Faculty Development Fund for Research, River: Reliable Virtual Resources for Parallel and Distributed Computing, 2006 and 2007.
University of San Francisco Faculty Development Fund for Research, Research in Parallel Software Development (with Peter Pacheco), 2003.
University of San Francisco Faculty Development Fund for Travel to the 10th EuroPVM/MPI Conference, Venice, Italy, September, 2003.
University of San Francisco Faculty Development Fund for Travel to the 15th IASTED International Conference on Parallel and Distributed Computing and Systems, Marina del Rey, CA 2003.
University of San Francisco Faculty Development Fund for Travel to Operating Systems Design and Implementation (OSDI) 2002.
W. M. Keck Foundation, $600,000.00, A Self-built Parallel Supercomputer for Interdisciplinary Undergraduate Research, A collaboration with Peter S. Pacheco and Tristan Needham, 2001.
University of San Francisco Faculty Development Fund for Research, Frameworks and Run-time Systems for Simplified Distributed Programming in Java, 2000.
University of San Francisco Faculty Development Fund for Research, Advanced Thread Systems for Applications and Programming Languages, 1999.
Altera Software Donation, $44,000.00. Licenses for Max+plus II digital design software. Used in undergraduate and graduate computer architecture. 1999.
Symposium on Operating Systems Principles (SOSP), Student Scholarship: 1997 and 1995.
UC Davis Graduate Student Travel Grant 1997.
Operating Systems Design and Implementation (OSDI), Student Grant: 1996 and 1994.
USENIX Technical Conference Student Grant 1996.
Mach III Symposium Student Grant 1993.

Memberships

Association for Computing Machinery (ACM)
ACM Special Interest Group on Operating Systems (ACM SIGOPS)
ACM Special Interest Group on Programming Languages (ACM SIGPLAN)
USENIX The Advanced Computing Systems Association
Ċ
Greg Benson,
Sep 11, 2009, 4:08 PM
Comments