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 six
participating institutions: Argonne National Laboratory, the California
Institute of Technology, Los Alamos National Laboratory, Rice University,
Syracuse University, and the University of Tennessee.
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 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 thrusts: Fortran Parallel Pro-gramming 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