Sites and Affiliations
Research and Applications
Major Accomplishments
Frequently Asked Questions
Knowledge and Technology Transfer
Education and Outreach
Media Resources
Technical Reports and Publications
Parallel Computing Research - Our Quarterly Newsletter
Contact Information
CRPC Home Page

UniGuide Featured Site

Introduction to the CRPC

High-performance computing is an essential tool in science and engineering. It is used to simulate physical phenomena, analyze data, link theory with reality, and design everything from simple machine parts to massively parallel computers. Further advancements in the use of high-performance computing will require not only faster, more powerful computers, but more efficient software and algorithms. However, successful efforts to increase the performance speed of traditional single-processor computers have come slowly in the past few years.

Parallel processing provides the answer to the problems of speed and efficiency. The next generation of parallel computers will achieve more than three trillion floating-point operations per second (three teraflops). Unfortunately, massively parallel machines require different algorithms from those used for sequential processing. Also, managing multiple processors makes parallel machines hard to program. These factors have inhibited the research community's acceptance of parallel computing.

A concentrated effort to address these problems exists, however. The Center for Research on Parallel Computation (CRPC) was established in 1989 with a commitment to making parallel computer systems usable for scientists and engineers. As one of the 11 original National Science Foundation Science and Technology Centers, the CRPC is a research consortium of seven participating institutions:

Two affiliated sites also collaborate on CRPC endeavors. The CRPC also has affiliations with other Research Centers and Coalitions

Much has been accomplished since the CRPC's establishment. New software tools have been developed along with new parallel algorithms and prototype implementations of scientific application programs. Educational, outreach, and applications programs have achieved the CRPC's goal of distributing these ideas and technologies to the outside community. In the coming years, researchers will build upon this development and concentrate on massive parallelism and architecture independence.


In education, CRPC programs for elementary and secondary schools provide teachers and administrators with the motivational tools needed to inspire their students to become scientists and engineers. Undergraduate and graduate programs train students in the use of parallel technologies and give them experience that they can bring to the scientific community and to industry. For information on CRPC accomplishments in education, see here.

Outreach and Knowledge Transfer

Outreach and knowledge transfer to the scientific community are important goals for the CRPC. Specific mechanisms for knowledge transfer to industry include special-topic workshops and training programs, short- and long-term visits, research collaborations, and corporate affiliates programs. In addition, information is disseminated to the overall scientific community through technical reports and other journals, a quarterly newsletter, and an annual research symposium. For information on outreach and knowledge transfer, see here.


CRPC research is both interdisciplinary and interinstitutional. Projects are shared among the six CRPC sites and collaborations with industry, academic institutions, and government laboratories are commonplace. The strength of the research is in the combined efforts and use of shared resources among the scientists. Most of the research falls within five principal areas: Fortran Parallel Programming Systems, Parallel Paradigm Integration, Linear Algebra, Optimization and Automatic Differentiation, and Differential Equations. Research results are evaluated within several CRPC applications projects. The principal research efforts, more fully described here, are:
  • The Fortran Parallel Programming Systems group is developing a programming system that can be used to write parallel code more easily. Initially, the focus has been on extending Fortran to support data parallelism in a machine-independent way with a special emphasis placed on enabling programmers to develop scalable code.
  • The Parallel Paradigm Integration group has a similar goal of making parallel computers easier to program by introducing modular parallel extensions to common languages, such as Fortran and C. They have also developed programming templates for scientists to build customized programs and have developed interactive electronic programming tutorials.
  • The Linear Algebra group has already developed an extensive library of routines to solve several major problems in linear algebra on scalable parallel machines and to improve communication between processors when performing computations. New research seeks to develop templates for interactive solution methods that can be incorporated into numerical simulation models.
  • The Parallel Optimization and Automatic Differentiation group is developing parallel algorithms for a broad range of numerical optimization problems. Of particular interest to industry is groundbreaking work in the parallel implementation of "multidisciplinary design optimization" (MDO), in which the objective function involves numerical simulations from more than one physical discipline.
  • The Differential Equations group is developing parallel algorithms for simulation of physical phenomena, with a special emphasis on designing algorithms that can handle more computations as the number of processors increases. Much of the research has focused on the use of domain decomposition and multigrid methods on parallel processors. The group's research has served as a basis for a number of applications projects.
  • Applications projects use technologies developed through the five main research thrusts for specific purposes in areas as diverse as aerospace engineering, petroleum engineering, and computational biology. The CRPC has recently established a program called PCE-TECH to increase the use of CRPC technologies for specific applications. Because of their applied nature, these projects generate frequent collaborations with researchers from industry and other academic institutions.

Below: CRPC graduate student Paul Havlak gives computer demonstrations to high school students as part of the South Texas Science Academy's Intern Program at Rice University. CRPC educational programs introduce parallel computing concepts to K-12 students as well as to undergraduate and graduate students.

Below: The numerical method used here is very fast but suffers from large errors where the triangulation is irregular. An improved method has been developed that reduces these errors while preserving the speed of the algorithm. This research is part of the Flow in Porous Media Parallel Project (FPMPP). Through the outreach and knowledge transfer activities of the FPMPP and the CRPC corporate affiliates programs, industrial scientists are introduced to new methods used in parallel computing. - P. Keenan, Rice University