Software Environments at the SACHPCC
[**intro para]
Programming Languages and Environments on our Supercomputers
Two parallel programming models are supported by both of our
supercomputers: data parallel and
message-passing. The Power Challenge also supports a
shared-memory model.
Data parallel programs take a global view, in which a single
program controls many processing nodes, requesting synchronised
computation, communication and I/O as needed. They are typically
written using data parallel languages, such as C*, CM Fortran, and
High Performance Fortran.
[suitability...]
Message-passing programs take a local, node-level view.
Separate copies of the program execute independently on each node.
The nodes divide tasks and data among themselves according to the
needs of the application; they may stay closely synchronised or become
completely asynchronous. All communication and synchronisation, as
well as data layout, are under the application's explicit control.
Message-passing programs are typically written in conventional
sequential programming languages such as C, C++, and FORTRAN, using
message passing libraries such as CMMD, PVI and MPI.
[suitability...]
Shared-memory programs take a global view in which multiple
threads of control execute in a shared memory space. In the most
basic instance, the programmer is responsible for all aspects of
synchronisation and access control. Shared-memory programs may be
written in sequential programming languages such as C, C++ and
FORTRAN using lightweight thread libraries, or in concurrent
programming languages such as CC++.
[suitability...]
Programming on the CM-5
The CM-5 supports data parallel programming through the programming
languages C* and CM Fortran and message-passing programming via the
CMMD and MPI-CH libraries. Further support for data parallel
computing is provided by the CM Scientific Software Library.
C*
C* is an extension of the C programming language, designed to
support data parallel programming. It adds several new concepts to
the language, including shapes, which are used to
logically configure parallel data; parallel versions of arrays and
structures; and where statements, which restrict the
set of positions within a shape on which operations are to take place.
CM Fortran
CM Fortran is FORTRAN 77 supplemented with the
array-processing extensions of Fortran 90. These extensions provide
convenient syntax and many intrinsic functions for manipulating
arrays. The Fortran 90 syntax allows an array to be treated as a
first-class object. In the statement A = A + 1, the
variable A can be a scalar or an array of any dimension;
the statement causes all elements of A to be operated on in parallel.
The syntax also permits specifying sections of arrays, which can be
used anywhere whole arrays are used: in expressions and assignments
and as arguments to procedures.
CMSSL, the Connection Machine Scientific Software Library
The Connection Machine Scientific Software Library is a set
of numerical routines that support computational applications while
exploiting the massive parallelism of the CM-5. CMSSL provides data
parallel implementations of familiar numerical routines in the areas
of linear algebra, ordinary differential equations, signal procesing,
statistical analysis and linear programming. It also offers a number
of communication functions that facilitate computations on both
structured grids.
On the CM-5, CMSSL is easiest to use from CM Fortran, but most
operations are also available from C*.
CMMD
CMMD is a communications library which supports
message-passing programming on the CM-5. CMMD supports both
cooperative and asynchronous message passing. With cooperative
concurrent message passing, synchronisation occurs only between
matched sending and receiving nodes and only during the act of
communication. At all other times, computing on each node proceeds
asynchronously with respect to other nodes.
The CMMD library is callable from C*, CM Fortran, C, C++ and FORTRAN
77.
MPI
MPI
(Message Passing Interface)
is a portable standard for writing message-passing programs. Apart
from the basic send and receive primitives, MPI also supports a
convenient suite of global operations (scattering and gathering of
data, and collective arithmetic operations).
MPI's primary advantage over CMMD is its portability: implementations
of MPI are available for many supercomputers and almost all Unix
platforms. MPI also introduces innovative features which ease the
development of portable libraries.
The Argonne National Laboratory
implementation,
MPICH,
is installed on
the CM-5 and Power Challenge.
Prism
Prism is a tool for interacting with programs on the CM-5.
Prism provides an integrated graphical environment for debugging,
analysing performance, and visualising data from your programs.
(There are versions of Prism for interacting with data parallel and
message-passing programs.)
CMAX, the CM Automated Translator
CMAX is an aid to converting standard FORTRAN 77 programs
into CM Fortran. CMAX is primarily a DO loop vectorizer.
It analyses loop constructs and translates them into CM Fortran array
operations.
For more information...
Complete, hyperlinked user documentation for CM-5 software is
available through its on-line documentation system,
CMview.
Programming on the Power Challenge
High Performance Fortran
High Performance Fortran is a portable set of extensions to
Fortran for writing data parallel programs. It includes features for
mapping data to parallel processors, specifying data parallel
operations, and methods for interfacing HPF programs to other
programming paradigms. Like CM Fortran, HPF incorporates many Fortran
90 features, but not all of them.
The
Portland Group's
High Performance Fortran
(pghpf) compiler is installed on Titan.
pghpf provides limited support for CM Fortran compatibility.
(Some CM Fortran intrinsics are not supported; neither are the
layout directives and the utility routines.)
MPI
MPI
(Message Passing Interface)
is a portable standard for writing message-passing programs. Apart
from the basic send and receive primitives, MPI also supports a
convenient suite of global operations (scattering and gathering of
data, and collective arithmetic operations).
MPI's primary advantage over other message-passing libraries is its
portability: implementations of MPI are available for many
supercomputers and almost all Unix platforms. MPI also introduces
innovative features which ease the development of portable libraries.
The Argonne National Laboratory
implementation,
MPICH,
is installed on
the CM-5 and Power Challenge.
PVM
PVM
(Parallel Virtual Machine)
is another message-passing library.
PVM lets you organise groups of processors into "virtual machines",
and then provides facilities for spawning processes and
message-passing within a virtual machine.
The
PVM Users' Guide
is available online.
POWER Fortran Accelerator
[??? get info from insight.]
For more information...
Complete, hyperlinked user documentation for Power Challenge software is
available through its on-line documentation system,
InSight.
Special-Purpose Software for Computational Chemists
GAMESS
Gaussian
Software on our Visualisation Workstations
Vis5D
Vis5D
is a software system for visualising data made by numerical weather
models and similar sources. Vis5D works on data in the form of a
five-dimensional grid. That is, the data are real numbers at each
point of a grid which spans three space dimensions, one time
dimension, and a dimension for enumerating multiple physical
variables. (Despite its name, Vis5D works perfectly well with
single-variable 3D data without time dynamics.)
The Vis5D system includes the vis5d visualisation
program, several programs for managing and analysing five-dimensional
data grids, and instructions and sample source code for converting
your data into its file format. (Vis5D is distributed under the GNU
General Public License.)
VMD
AVS
AVS is a high-performance data visualisation package from
Advanced Visual Systems, inc.
It provides excellent facilities to reduce the time required to
produce high-quality graphics output from scientific data. Apart from
a basic set of pre-supplied packages for visualising common data
types, AVS also provides a facility to create new applications
graphically by building data flow networks.
These networks connect "building blocks" chosen from a comprehensive
selection of visualisation and data-processing modules. New
modules can also be added to the system by programming in general
purpose languages like C, C++ and Fortran. As a result, AVS provides
unlimited flexibility to developers as well as users.
AVS is equiped with high-performance graphics rendering facilities.
The system is very fast, as it utilises the native hardware rendering
facilities where they are available. On many workstations, it also
supports stereoscopic viewing equipment (such as our crystal vision
glasses) and head-tracking equipment.
AVS modules are capable of communicating across the network, and can
run on all of the SACHPCC machines, including the CM-5 and the Power
Challenge. This enables a combination of high-performance computing
and sophisticated interactive visualisation.