CP's origins dated to an early collaboration between the physics and
computer science departments at Caltech in bringing up UNIX on the physics
department's VAX 11/780. As an aside, we note this was motivated by the
development of the Symbolic Manipulation Program (SMP) by Wolfram and
collaborators; this project has now grown into the well-known system
Mathematica. Carver Mead from computer science urged physics to get
back to them if we had insoluble large scale computational needs. This
comment was reinforced in May, 1981 when Mead gave a physics
colloquium on VLSI, Very Large Scale Integration, and the opportunities
it opened up. Fox, in the audience, realized that quantum
chromodynamics (QCD, Section 4.3), now using up all free cycles on
the VAX 11/780, was naturally parallelizable and could take advantage of
the parallel machines promised by VLSI. Thus, a seemingly modest
interdisciplinary interaction-a computer scientist lecturing to
physicists-gave birth to a large interdisciplinary project, CP.
Further, our interest in QCD stemmed from the installation of the
VAX 11/780 to replace our previous batch computing using a remote
CDC7600. This more attractive computing environment, UNIX
on a VAX 11/780, encouraged theoretical physics graduate students to
explore computation.

During the summer of 1981, Fox's research group, especially
Eugene Brooks and Steve Otto, showed that effective concurrent
algorithms could be developed, and we presented our conclusion to the
Caltech computer scientists. This presentation led to the plans,
described in a national context in Chapter 2, to produce the first
hypercube, with Chuck Seitz and his student Erik DeBenedictis
developing the hardware and Fox's group the QCD applications and
systems software. The physics group did not understand what a
hypercube was at that stage, but agreed with the computer scientists
because the planned six-dimensional hypercube was isomorphic to a
three-dimensional mesh, a topology
whose relevance a physicist could appreciate. With the generous help
of the computer scientists, we gradually came to understand the
hypercube topology with its general advantage (maximum distance between
nodes is ) and its specific feature of including a rich
variety of mesh topologies. Here N is the total number of nodes in
the concurrent computer. We should emphasize that this understanding
of the relevance of concurrency to QCD was not particularly novel; it
followed from ideas already known from earlier concurrent machines such
as the Illiac IV. We were, however, fortunate to investigate the
issues at a time when microprocessor technology (in particular the
Intel 8086/8087) allowed one to build large (in terms of number of
nodes) cost-effective concurrent computers with interesting performance
levels. The QCD problem was also important in helping ensure that the
initial Cosmic Cube was built with sensible design
choices; we were fortunate that in choosing parameters, such as
memory size, appropriate for QCD, we also realized a machine of general
capability.

While the 64-node Cosmic Cube was under construction, Fox wandered
around Caltech and the associated Jet Propulsion Laboratory explaining
parallel computing and, in particular, the Cosmic Cube to scientists in
various disciplines who were using ``large'' (by the standards of 1981)
scale computers. To his surprise, all the problems being tackled on
conventional machines by these scientists seemed to be implementable on
the Cosmic Cube. This was the origin of CP, which identified the
Caltech-JPL applications team, whose initial participants are noted in
Table 4.2. Fox, Seitz, and these scientists prepared the
initial proposals which established and funded CP in the summer of
1983. Major support was obtained from the Department of Energy and the
Parsons and System Development Foundation. Intel made key initial
contributions of chips to the Cosmic Cube and follow-on machines. The
Department of Energy remained the central funding support for CP
throughout its seven years, 1983 to 1990.

The initial CP proposals were focussed on the question:

``Is the hypercube an effective computer for large-scale scientific
computing?''

Our approach was simple: Build or acquire interesting
hardware and provide the intellectual and physical infrastructure to
allow leading application scientists and engineers to both develop
parallel algorithms and codes, and use them to address important
problems. Often we liked to say that CP

``used real hardware and real software to solve real problems.''

Our project showed initial success, with the approximately ten
applications of Table 4.2 developed in the first year. We both
showed good performance on the hypercube and developed a performance
model which is elaborated in Chapter 3. A major
activity at this time was the design and development of the necessary
support software, termed CrOS and later developed into the
commercial software Express described in Chapter 5.
Not only was the initial hardware applicable to a wide range of
problems, but our software model proved surprisingly useful. CrOS was
originally designed by Brooks as the ``mailbox communication system''
and we initially targeted the regular synchronous problems typified in
Chapter 4. Only later did we realize that it supported quite
efficiently the irregular and non-local communication needs of more
general problems. This generalization is represented as an evolutionary
track of Express in Chapter 5 and for a new
communication system Zipcode in Section 16.1 developed from
scratch for general asynchronous irregular problems.

Although successful, we found many challenges and intriguing questions
opened up by CP's initial investigation into parallel computing.
Further, around 1985, the DOE and later the NSF made substantial
conventional supercomputer (Cray, Cyber, ETA) time available to
applications scientists. Our Cosmic Cube and the
follow-on Mark II machines were very competitive with the VAX 11/780,
but not with the performance offered by the CRAY X-MP. Thus, internal
curiosity and external pressures moved CP in the direction of
computer science: still developing real software but addressing new
parallel algorithms and load-balancing techniques rather than a
production application. This phase of CP is summarized in
[Angus:90a], [Fox:88a;88b].

Around 1988, we returned to our original goal with a focus on parallel
supercomputers. We no longer concentrated on the hypercube, but rather
asked such questions as [Fox:88v],

``What are the cost, technology, and software trade-offs that will drive
the design of future parallel supercomputers?''

and as a crucial (and harder) question:

``What is the appropriate software environment for parallel machines and
how should one develop it?''

We evolved from the initial 8086/8087, 80286/80287 machines to the
internal JPL Mark IIIfp and commercial nCUBE-1 and CM-2
described in Chapter 2. These were still ``rough, difficult
to use machines'' but had performance capabilities competitive with
conventional supercomputers.

This book largely describes work in the last three years of CP when
we developed a series of large scale applications on these parallel
supercomputers. Further, as described in Chapters 15,
16, and 17, we developed prototypes and ideas for
higher level software environments which could accelerate and ease the
production of parallel software. This period also saw an explosion of
interest in the use of parallel computing outside Caltech. Much of
this research used commercial hypercubes which partly motivated our
initial discoveries and successes on the in-house machines at Caltech.
This rapid technology transfer was in one sense gratifying, but it also
put pressure on CP which was better placed to blaze new trails than
to perform the more programmatic research which was now appropriate.

An important and unexpected discovery in CP was in the education and
the academic support for interdisciplinary research. Many of the
researchers, especially graduate students in CP, evolved to be
``computational scientists.'' Not traditional physicists, chemists, or
computer scientists but rather something in between. We believe that
this interdisciplinary education and expertise was critical for CP's
success and, as discussed in Chapter 20, it should be encouraged in
more universities [Fox:91f;92d].

Further information about CP can be found in our annual reports and two
reviews.