![]() |
![]() |
||||
![]() |
![]() |
![]() |
![]() |
||
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. |
| SAPAC SITE MAP |