RING_MPI
Estimating Communication Rates in MPI


RING_MPI is a C program which estimates the time it takes to send a vector of N double precision values through each process in a ring.

Process 0 sends N double precision values to process 1, which passes them to process 2, and so on, until process P-1 sends them back to process 0. The time for this transmission is recorded. The experiment is repeated several times, and for several different array sizes N.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

RING_MPI is available in a C version and a C++ version and a FORTRAN90 version.

Related Data and Programs:

COMMUNICATOR_MPI, a C program which creates new communicators involving a subset of initial set of MPI processes in the default communicator MPI_COMM_WORLD.

HEAT_MPI, a C program which solves the 1D Time Dependent Heat Equation using MPI.

HELLO_MPI, a C program which prints out "Hello, world!" using MPI for parallel execution.

MOAB, examples which illustrate the use of the MOAB job scheduler for a computer cluster.

MPI, C programs which illustrate the use of the MPI application program interface for carrying out parallel computatioins in a distributed memory environment.

MPI_STUBS, a C library which contains "stub" MPI routines, allowing a user to compile, load, and possibly run an MPI program on a serial machine.

MULTITASK_MPI, a C program which demonstrates how to "multitask", that is, to execute several unrelated and distinct tasks simultaneously, using MPI for parallel execution.

POISSON_MPI, a C program which computes a solution to the Poisson equation in a rectangle, using the Jacobi iteration to solve the linear system, and MPI to carry out the Jacobi iteration in parallel.

PRIME_MPI, a C program which counts the number of primes between 1 and N, using MPI for parallel execution.

QUAD_MPI, a C program which approximates an integral using a quadrature rule, and carries out the computation in parallel using MPI.

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.

SATISFY_MPI, a C program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, using MPI to carry out the calculation in parallel.

SEARCH_MPI, a C program which searches integers between A and B for a value J such that F(J) = C, using MPI.

WAVE_MPI, a C program which uses finite differences and MPI to estimate a solution to the wave equation.

Reference:

  1. Peter Pacheco,
    Parallel Programming with MPI,
    Morgan Kaufman, 1996,
    ISBN: 1558603395,
    LC: QA76.642.P3.

Source Code:

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


Last revised on 20 October 2012.