Next: The Intel Paragon
Up: The CM-5 at
Previous: The CM-5 Hardware
The CM-5 has two internal networks that support interprocessor
communication. They are:
-
Control Network: The control network provides tightly coupled
communications services. It is optimized for low latency and supports
synchronization and
broadcast operations. It has latency of 2-5 microseconds.
-
Data Network: The data network provides loosely coupled
communications
services. It is optimized for high bandwidth and supports
point-to-point communication. The data network interconnect
is a fat tree. It has a peak bandwidth of 20 MB/s between
any two nodes (one direction).
Measured performance or point-to-point communication (which uses the
data network) has about 80 microseconds latency (startup time) and 8.7
MB/sec bandwidth.
Global operations generally use the control network and are extremely
fast, as long as they do not involve large arrays. Global
synchronizations and integer reductions take about 5 microseconds.
Global floating point reductions take about 25 microseconds. A
broadcast of a single word to all nodes takes about 8 microseconds. An
all-to-all gather (CMMD_concat_with_nodes()) takes 42 microseconds
for a single word on each node.
The broadcast and concatenation operations take longer for longer messages,
reaching an aggregate bandwidth of 25 MB/sec and 34 MB/sec on 32 nodes,
respectively. The preceding numbers were obtained with CMMD 3.1 final.
The CM-5 I/O System
- The CM-5 at NAS is a Scalable Disk Array (SDA) with 48 GB of fast
parallel disk space.
The SDA is a RAID 3 device. Multiple (up to 48) small disks
operate together as a unit and files are distributed
(striped) over the small disks. There is one parity drive.
From the software point of view, the SDA looks like an
ordinary UNIX device with enhancements for large (> 4 GB) files and
fast parallel I/O.
- The CM-5 has three HIPPI (High Performance Parallel Interface)
interfaces to link the CM-5 and its storage devices to other
supercomputer systems such as the CRAY Y-MP C90.
The HIPPI interfaces will not be operational until mid 1994.
- The NAS CM-5 does not have Datavault.
The CM-5 Software and Programming Environment
- CMOST: The CM-5 operating system, CMOST, is an enhanced
version of the UNIX operating system. It is binary-compatible with
SunOS 4.1 (for scalar programs). The enhancements provide support
for
parallel programming. The partition manager runs a full version of
CMOST; the processing nodes run a CMOST microkernel.
- Prism: The Prism programming environment is an integrated-graphical
environment for program editing, debugging, data visualization and
performance analysis. Prism operates on workstations running the X
window system. A commands-only version is also available for users
without access to X window.
- CM/AVS: CM/AVS is a graphical user interface that adopts and
extends the Application Visualization System (AVS) to the
CM-5. A user can use CM/AVS to build distributed-visualization
applications that involve operations such as filtering, graphing,
volume rendering, and animation. CM/AVS is not generally available.
If you need to use it, contact NAS User Services.
Data Parallel Languages
- CM Fortran: CM Fortran is a standard Fortran compiler
supplemented with the array-processing extensions of Fortran 90.
- C*: A version of standard C with extensions to support
data parallel programming.
- *Lisp: The data parallel version of Lisp. Currently only the *Lisp
interpreter is available for the CM-5.
- The CMAX translator is available to assist in converting serial
Fortran 77 source code into data parallel CM Fortran source code.
Data Parallel Processing:
From the software perspective, an array object refers to all the data
elements of the array simultaneously. From the hardware perspective, the
separate operations on the array's elements are all performed
simultaneously.
CM Fortran:
The CM Fortran language is an implementation of Fortran 77 supplemented
with array-processing extensions from the ANSI and ISO (draft) standard
Fortran 90. These array-processing features map naturally onto the data
parallel architecture of the Connection Machine (CM) system, which is
designed for computations on large data sets. CM Fortran thus combines:
- The familiarity of Fortran 77, still the language of choice for
scientific computing;
- The expressive power of Fortran 90, which offers a rich selection of
operations and intrinsic functions for manipulating arrays;
- The computational power of the CM system, which brings thousands of
processors to bear on large arrays, processing all the elements in unison.
In Fortran 77, operations are defined only on individual
scalars. Operating on an array requires stepping through its elements,
explicitly performing the operation on each one. With Fortran 90
constructions, it is not necessary to reference array elements separately
by means of subscripts, and it is not necessary to write DO loops or other
such control constructs to have the operation repeated for each element. It
is sufficient simply to name the array as an operand or argument.
CM Fortran implements the array-processing features of Fortran 90.
Features of Fortran 90 in the major areas other than array
processing - such as pointers, structures, modules, and precision
control - are
not part of CM Fortran.
CM Fortran Utility Library:
The Utility Library provides convenient access from CM Fortran to the
capabilities of lower-level CM software. The purpose is typically to
achieve functionality or performance beyond what is currently available
from
the compiler. CM Fortran programmers can use Utility Library procedures in
situations where one is normally tempted to make explicit calls to
lower-level software. The CM Utility Library provides parallel I/O which
is compatible with the parallel I/O of the CMMD library and the CM Fortran
timer.
Software Libraries
- CMSSL Scientific and Mathematical Library:
The CM Scientific Software Library (CMSSL) provides routines
for performing data parallel versions such as numerical linear
algebra, FFTs, ordinary differential equations, optimization,
random number generation, and statistical analysis.
The library also provides optimized communication functions
important to structured- and unstructured-grid computations for the
numerical solution of partial differential equations and
optimization
problems such as: communication compiling, partitioning, polyshifting,
gathering and scattering, and all-to-all broadcasting and reduction.
- CMMD Communication Library:
The Connection Machine communication library, CMMD, supports
node level programming (message passing) by providing routines
for fast and efficient communication between processing nodes.
- CMX11 Visualization Library:
This library provides routines to transfer parallel data between
the
CM-5 and any workstation running X11. The library can be called
from CM Fortran and C*.
Next: The Intel Paragon
Up: The CM-5 at
Previous: The CM-5 Hardware