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

Aquila - Porting Programs to the Machine

 

Sequential Programs

Sequential programs should run without change on a single processor of the machine. You can therefore use the machine without knowing how to write parallel programs, simply by submitting sequential jobs to the queuing system. Of course, your programs will have to be compiled to run on the 64 bit architecture first.

Parallel Programming

Alternatively, you can port or develop your programs using a standard parallel programming language. Programs written using Message Passing Interface (MPI), or OpenMP (shared memory directives) can be compiled and run on Aquila. OpenMP and MPI programs can be run on any number of processors up to the limit of the physical number of processors available.

NOTE: If you wish to run a program on a large number of processors (more than 16), make sure that you contact the SAPAC helpdesk before you submit the job or you may encounter difficulty in actually getting the job to run.

OpenMP

The OpenMP API supports shared-memory parallel programming in C, C++ and Fortran. You can use OpenMP directives placed into your source code to allow some automatic parallelisation of loops within programs.For more information on OpenMP, a useful and comprehensive tutorial is available. Other resources can be found in the Documentation section of this User Guide.

MPI

You can use MPI to parallelise programs written in Fortran, C or C++. This is more difficult to program than 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 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 solving, 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.

SGI provides its Scientific Computing Software Library, SCSL, for use on the Altix. This contains BLAS, LAPACK, Sparse Matrix solvers and FFT routines, highly optimised for the Altix architecture.

In addition, the Intel Math Kernel Library, MKL, is available on the Altix for use in conjunction with the Intel Compiler Suite with its own BLAS, LAPACK, ScaLAPACK, Sparse Matrix Solvers and FFT routines, optimised for the Intel Itanium 2 processors.

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 machine, contact the SAPAC helpdesk.

Aquila User's Guide

SAPAC SITE MAP