MPI_ECLIPSE
Submitting C MPI Programs to ECLIPSE


This directory contains some examples of LoadLeveler scripts that were used on the Eclipse and Teragold IBM SP systems in order to submit and run C programs that use MPI, the Message Passing Interface.

Related Data and Programs:

CONDOR is the remote queueing system used to submit MPI jobs to the SCS clusters.

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 CONDOR scripts for running C programs using MPI on the FSU cluster system.

MPI_ECLIPSE examples are also available in a C++ version, and a FORTRAN77 version, and a FORTRAN90 version.

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 C 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 a directory of PBS scripts for running C programs using MPI on System X.

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 that 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 example in an introductory 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 has each process say hello:

MATVEC computes a matrix-vector product c = A * b, giving each process a copy of the vector b, and using self-scheduling to let any process have the next row of A to work on when it is ready. Arrays are allocated dynamically. The "math.h" include file is needed, as is the run-time math library.

MONTE CARLO computes PI by the Monte Carlo method, testing whether points in the unit square are in the unit circle.

QUADRATURE integrates a function f(x) over an interval;

SEARCH searches a list of numbers for all occurrences of a target value.

SUM adds a list of numbers.

TYPE sets up a user-defined datatype, and sends and receives data in this form.

VERSION calls a routine that reports the version and subversion of MPI.

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


Last revised on 10 October 2007.