Infrastructure Initiatives

Three infrastructure projects in the Department of Computer Science are currently under way, with funding provided by the National Science Foundation (NSF) and the Department of Education. Historically, infrastructure projects funded by the NSF at Rice have fostered significant growth in computer science and related disciplines and have led to the close interdisciplinary collaborations for which the university is well known.

Education Infrastructure

Programming is founded on two complementary models of computation: the algebraic one, rooted in mathematical logic, and the physical one, grounded in electrical engineering. Introductory computing courses typically focus on one of these models and a corresponding programming language. Courses based on the algebraic model teach Scheme, SML, or Haskell, and other courses teach C, C++, Pascal, or Ada.

Both approaches have advantages. The algebraic model is better for teaching a taxonomy of programming concepts and problem-solving methods. The physical model provides better preparation for the software marketplace and subsequent computer systems courses, which are typically based on the machine-model of computing. Unfortunately, the competition between these two models has split the programming curriculum, diminishing course standardization and undermining the interfaces between courses. To exploit the strengths of both models and unify the programming curriculum, the Rice Education Infrastructure Project in Computer Science (EI) has developed curricular materials and software tools to support the integration of the two models throughout the programming curriculum. These materials and tools are being used to support an introductory computing course as well as those upper-level courses that can benefit from the algebraic model.

The introductory course teaches both models of computation, their interrelationships, and the languages that support them (Scheme and C). For the integration of upper-level courses, the EI project will develop a programming environment for C/C++ that enforces pedagogically useful restrictions, supports conservative garbage collection, and enables integration of Scheme code.

The project is codirected by Corky Cartwright, Matthias Felleisen, and Joe Warren. It is funded from 1994 to 1998.

Research Infrastructure

Much of the focus in parallel computing has shifted away from dedicated, special-purpose parallel computing facilities and toward commodity networking and processor technology. Because it is made of commodity components, such a ``networks of workstations'' system is cheaper to buy, cheaper to maintain, and easier to use than earlier parallel machines. The Research Infrastructure (RI) grant, awarded to the Computer and Information Technology Institute (CITI) for 1995 to 2000, is giving researchers the opportunity to work toward making parallel computing affordable to industry. It was awarded by the directorate for Computer and Information Science and Engineering (CISE) of the NSF.

Since receiving the grant, CITI has procured four SGI Power Challenge shared-memory multiprocessors, each outfitted with four processors and connected by a high-speed HIPPI interconnect. In the second year of the grant, four newer-model four-processor SGI Power Challenges were added and the four initial machines upgraded. The grant, which is matched by the university, also provides support for maintenance and staff.

The multiprocessor cluster allows CITI to explore important research areas that it could not otherwise investigate. From the perspective of research in parallel programming systems, a cluster of shared-memory multiprocessors offers both the opportunity and the challenge of integrating different levels of parallelism.

The focus of the programming systems work is on providing a uniform shared-memory programming environment across all processors. From the applications perspective, a cluster of shared-memory multiprocessors provides an excellent platform for exploring the hierarchical parallelism that occurs in many of the applications that are of interest to CITI researchers, such as mixed-integer programming, seismic modeling, computational genetics, and computational nanotechnology. A primary objective of the RI project is to increase faculty and graduate student research. It involves faculty and researchers from the computer science, computational and applied mathematics, electrical and computer engineering, physics, and chemistry departments. Willy Zwaenepoel is the project director, with Sidney Burrus, Ken Kennedy, William Symes, and Moshe Y. Vardi as coprincipal investigators.

Retooling for Scalable Parallelism

The Center for Research on Parallel Computation (CRPC) project, ``Retooling the Supercomputing Community for Scalable Parallelism,'' is an NSF Metacenter Regional Alliance (MRA) program. It is designed to provide professional trainers with supercomputer center sites equipped with up-to-date curricular materials and training in the use of parallel programming tools and methods.

Initiated in 1994 and funded until 1997, the retooling project allows the CRPC to reach a large portion of the High Performance Computing and Communications (HPCC) community by disseminating multimedia educational materials electronically and through workshops for supercomputing center staff members who regularly teach courses and train end users.

Retooling project members collaborate with the North Carolina Supercomputing Center (NCSC) to conduct annual workshops for supercomputer center trainers. At the 1995 workshop held at the NCSC, CRPC researchers presented four parallel programming technologies to supercomputer center trainers. Attendees learned how software templates, Message Passing Interface, parallel applications, and Fortran M can be applied to the work of current supercomputer users.

Coprincipal investigators for the retooling project are Ken Kennedy and Geoffrey Fox.