MPI_STUBS
Dummy MPI Library
MPI_STUBS is a C library
which implements "stub" versions of the MPI routines.
MPI_STUBS is intended to include stubs for the most commonly
called MPI routines. Most of the stub routines don't do anything.
In a few cases, where it makes sense, they do some simple action
or return a value that is appropriate for the serial processing
case.
MPI_STUBS can be used as a convenience, when a real MPI
implementation is not available, and the user simply wants to
test-compile a code. It may also be useful in those occasions
when a code has been so carefully written that it will still
execute correctly on a single processor.
MPI_STUBS is based on a similar package supplied as
part of the LAMMPS program, which allow that program to
be compiled, linked and run on a single processor machine,
although it is normally intended for parallel execution.
Related Data and Programs:
LAMMPS
is a FORTRAN77 program which
is molecular dynamics simulation using MPI.
A serial version can be created by linking the
program with the MPI_STUBS library.
MPI
is an library of message passing routines which
enables parallel
processing on a variety of machine architectures, and with
a varying number of processors.
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 also available in
a C++ version and
a FORTRAN77 version
and
a FORTRAN90 version.
OPEN_MP
is a directory of C examples which
illustrate the use of the OpenMP application program interface
for carrying out parallel computations in a shared memory environment.
PETSC
is a scientific programming library for parallel programming, which
requires MPI in order to run.
PLTMG_SINGLE
is a FORTRAN77 program which
uses the MPI library as part of a finite element calculation.
RANDOM_MPI,
a C program which
demonstrates one way to generate the same sequence of random numbers
for both sequential execution and parallel execution under MPI.
Reference:
-
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.
Source Code:
Examples and Tests:
BUFFON_LAPLACE demonstrates how parallel Monte Carlo
processes can set up distinct random number streams.
HELLO is a simple program that says "Hello, world!".
QUADRATURE is a program that estimates an integral
using the random sampling.
List of Routines:
-
MPI_ALLGATHER gathers data from all the processes in a communicator.
-
MPI_ALLGATHERV gathers data from all the processes in a communicator.
-
MPI_ALLREDUCE carries out a reduction operation.
-
MPI_BARRIER forces processes within a communicator to wait together.
-
MPI_BCAST broadcasts data from one process to all others.
-
MPI_CART_CREATE creates a communicator for a Cartesian topology.
-
MPI_CART_GET returns the "Cartesian coordinates" of the calling process.
-
MPI_CART_SHIFT finds the destination and source for Cartesian shifts.
-
MPI_COMM_DUP duplicates a communicator.
-
MPI_COMM_FREE frees a communicator.
-
MPI_COMM_RANK reports the rank of the calling process.
-
MPI_COMM_SIZE reports the number of processes in a communicator.
-
MPI_COMM_SPLIT splits up a communicator based on a key.
-
MPI_COPY_BYTE copies a byte vector.
-
MPI_COPY_DOUBLE copies a double vector.
-
MPI_COPY_FLOAT copies a float vector.
-
MPI_COPY_INT copies an int vector.
-
MPI_FINALIZE shuts down the MPI library.
-
MPI_GET_COUNT reports the actual number of items transmitted.
-
MPI_INIT initializes the MPI library.
-
MPI_IRECV receives data from another process.
-
MPI_ISEND sends data from one process to another using nonblocking transmission.
-
MPI_RECV receives data from another process within a communicator.
-
MPI_REDUCE carries out a reduction operation.
-
MPI_REDUCE_DOUBLE carries out a reduction operation on doubles.
-
MPI_REDUCE_FLOAT carries out a reduction operation on floats.
-
MPI_REDUCE_INT carries out a reduction operation on ints.
-
MPI_REDUCE_SCATTER collects a message of the same length from each process.
-
MPI_RSEND "ready sends" data from one process to another.
-
MPI_SEND sends data from one process to another.
-
MPI_WAIT waits for an I/O request to complete.
-
MPI_WAITALL waits until all I/O requests have completed.
-
MPI_WAITANY waits until one I/O requests has completed.
-
MPI_WTICK returns the time between ticks of the timer.
-
MPI_WTIME returns the elapsed wall clock time.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C source codes.
Last revised on 26 October 2007.