MPI_SYSX
Submitting FORTRAN77 MPI Programs to System X


MPI_SYSX is a directory of FORTRAN77 programs which contains some examples of PBS scripts used on Virginia Tech's SYSTEM X in order to submit and run FORTRAN77 programs that use MPI, the Message Passing Interface.

Related Data and Programs:

CONDOR is a remote queueing system.

HEAT_MPI is a FORTRAN77 program which solves the 1D time dependent heat equation using the finite difference method, with parallelization from MPI.

LAMMPS is an executable FORTRAN77 molecular dynamics simulation program which uses MPI. A serial version can be created by linking the program with the MPI_STUBS library.

METIS is a C library (and a family of executable programs based on it) which can partition the nodes of a graph or the elements of a finite element mesh in a way suitable for further treatment by parallel processing.

MPI is the Message Passing Interface, which allows programs to execute in parallel.

MPI_CONDOR is a directory of sample scripts for running FORTRAN77 programs under MPI through the CONDOR queueing system, once used at FSU.

MPI_ECLIPSE is a directory of sample LoadLeveler scripts for running FORTRAN77 programs under MPI on the ECLIPSE or TERAGOLD IBM SP systems that were once available at FSU SCS.

MPI_INTRODUCTION is a one page introduction to MPI.

MPI_MORE_INFO contains a list of references, web sites, examples and tutorials on MPI.

MPI_STUBS is a FORTRAN77 library of "stub" MPI routines, which allows a user to compile, load, and possibly run an MPI program on a serial machine.

MPI_SYSX is also available in a C version and a C++ version and a FORTRAN90 version.

OPEN_MP is a simple system for parallel programming which relies on the use of shared memory.

PETSC is a scientific programming library for parallel programming, which requires MPI in order to run.

PLTMG_SINGLE is a FORTRAN77 finite element program which can be compiled and run with the MPI library.

SGE is the Sun Grid Engine, a remote queueing system.

Reference:

  1. William Gropp, Ewing Lusk, Anthony Skjellum,
    Using MPI: Portable Parallel Programming with the Message-Passing Interface,
    Second Edition,
    MIT Press, 1999,
    ISBN: 0262571323,
    LC: QA76.642.G76.

Examples and Tests:

BONES passes a vector of real data from one process to another. It was used as an introductory example in an MPI workshop.

BUFFON_LAPLACE demonstrates how parallel Monte Carlo processes can set up distinct random number streams.

DAY1_EX3 works out exercise #3 assigned after day 1 of a workshop on MPI. The instructions were to have process 1 generate some integers, send them to process 3 which used some of those values to generate some real numbers which were then sent back to process 1.

HELLO simply prints out "Hello, world!" from each MPI process.

INTERVALS estimates an integral by dividing an interval into subintervals, and having the servant processes estimate the integral over each subinterval.

MATMAT multiplies two matrices.

MATVEC multiplies a matrix times a vector.

POISSON_BAND is a revision to POISSON_SERIAL, which divides the physical region into horizontal strips, assigns a process to each strip, and uses MPI_SEND and MPI_RECV to pass interface data between processes.

POISSON_SERIAL solves the Poisson equation on a 2D grid. This version of the program does not use MPI, and is provided for comparison.

QUADRATURE estimates an integral.

SEARCH searches a vector for occurrences of a particular value.

TYPE demonstrates the use of a user-defined datatype.

VERSION calls an MPI routine that returns the version and subversion levels of the MPI library.

You can go up one level to the FORTRAN77 source codes.


Last revised on 29 October 2007.