SAPAC logo The South Australian Partnership for Advanced Computing spacer
Information about Information for Search SAPAC Contact SAPAC

Hydra - Porting Programs to the Cluster

 

Sequential Programs

Sequential programs should run without change on a single processor of the cluster. You can therefore use the cluster without knowing how to write parallel programs, simply by submitting multiple sequential jobs.

Parallel Programming

Alternatively, you can port or develop your programs using a standard parallel programming language. Programs written using High Performance Fortran (HPF), Message Passing Interface (MPI), or OpenMP (shared memory directives) can be compiled and run on the cluster. OpenMP programs can only be run on one node (2 processors) since they use shared memory. HPF programs can be run on up to 64 processors (this is a license restriction). MPI jobs can be run on any number of processors.

HPF

Programs written in Fortran 90 and using Fortran 90 array syntax can be ported to HPF fairly simply by adding compiler directives to specify the distribution of arrays over processors. For more information on HPF and the Portland Group HPF compiler that is provided on Hydra, see the PGHPF documentation. There is a good online HPF Programming Course from Edinburgh Parallel Computing Centre. The High Performance Fortran Handbook by C.H. Koelbel et al. is a useful reference. More information is available in the Documentation section of this User Guide.

MPI

You can use MPI to parallelize programs written in Fortran, C or C++. This is more difficult to program than HPF or OpenMP, but typically gives better performance. For more information on MPI, you can look at this list of materials for learning MPI. There is a good online MPI Programming Course from Edinburgh Parallel Computing Centre. A standard reference book is Using MPI: Portable Parallel Programming with the Message-Passing Interface, by William Gropp, Ewing Lusk and Anthony Skjellum, MIT Press, 1994. More information is available in the Documentation section of this User Guide.

Parallel Scientific Software Libraries

For some programs, the majority of the time is taken up in standard routines such as matrix solve, FFT, or computing eigenvalues. In that case, it is possible to use libraries containing parallel versions of these routines, which should speed up your program without requiring you to write any parallel code.

ScaLAPACK is a parallel version of the well-known LAPACK linear algebra libraries that provides parallel versions of many commonly-used numerical routines. ScaLAPACK is available on Hydra.

Standard Software Packages

Many standard software packages have parallel versions of the software available. The Software section of this User Guide lists some parallel programs that have been installed. Please contact the SAPAC helpdesk is you would like other packages installed.

Help with Parallel Program Development

SAPAC periodically runs training courses on parallel programming. Details of upcoming courses will be posted on the SAPAC Education and Training Web page.

For help with porting programs and optimizing performance on the cluster, contact the SAPAC helpdesk.

Hydra User's Guide

SAPAC SITE MAP