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...]

CM5 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.

Power Challenge 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

Power Challenge 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.


SACHPCC