This directory contains some examples of scripts that can be input to the CONDOR queueing system, in order to submit and run C programs that use MPI, the Message Passing Interface.
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 examples are also available in a C++ version, and a FORTRAN77 version, and a FORTRAN90 version.
MPI_ECLIPSE is a directory of LoadLeveler scripts for running C programs using MPI on the Eclipse IBM SP at FSU.
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 that 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.
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.