multitask_mpi


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

In this example, there is a "master" process, identified as process 0, and two worker processes, 1 and 2. Process 0 does nothing but choose the input for the worker processes, transmit it, and wait for the computed results to be returned. The codes executed by process 1 and by process 2 are quite different.

While the typical MPI model has all the worker processes executing the same code, this example shows that that is not necessary.

Licensing:

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

Languages:

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

Related Data and codes:

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

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

HELLO_MPI, a C code which prints out "Hello, world!" using the MPI parallel codeming environment.

LAPLACE_MPI, a C code which solves Laplace's equation on a rectangle, using MPI for parallel execution.

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

multitask_mpi_test

MULTITASK_OPENMP, a C code which demonstrates how to "multitask", that is, to execute several unrelated and distinct tasks simultaneously, using OpenMP for parallel execution.

POISSON_MPI, a C code 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 code which counts the number of primes between 1 and N, using MPI for parallel execution.

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

RANDOM_MPI, a C code which demonstrates one way to generate the same sequence of random numbers for both sequential execution and parallel execution under MPI.

RING_MPI, a C code which uses the MPI parallel codeming environment, and measures the time necessary to copy a set of data around a ring of processes.

SATISFY_MPI, a C code 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 code which searches integers between A and B for a value J such that F(J) = C, using MPI.

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

Reference:

  1. William Gropp, Steven Huss-Lederman, Andrew Lumsdaine, Ewing Lusk, Bill Nitzberg, William Saphir, Marc Snir,
    MPI: The Complete Reference,
    Volume II: The MPI-2 Extensions,
    Second Edition,
    MIT Press, 1998.
  2. William Gropp, Ewing Lusk, Anthony Skjellum,
    Using MPI: Portable Parallel codeming with the Message-Passing Interface,
    Second Edition,
    MIT Press, 1999,
    ISBN: 0262571323.
  3. William Gropp, Ewing Lusk, Rajiv Thakur,
    Using MPI-2: Advanced Features of the Message-Passing Interface,
    Second Edition,
    MIT Press, 1999,
    ISBN: 0262571331.
  4. Stan Openshaw, Ian Turton,
    High Performance Computing and the Art of Parallel codeming: an Introduction for Geographers, Social Scientists, and Engineers,
    Routledge, 2000,
    ISBN: 0415156920.
  5. Peter Pacheco,
    Parallel codeming with MPI,
    Morgan Kaufman, 1996,
    ISBN: 1558603395,
    LC: QA76.642.P3.
  6. Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, Jack Dongarra,
    MPI: The Complete Reference,
    Volume I: The MPI Core,
    Second Edition,
    MIT Press, 1998,
    ISBN: 0-262-69216-3,
    LC: QA76.642.M65.
  7. The Message Passing Interface Forum,
    MPI: A Message Passing Interface Standard,
    1995.
  8. The Message Passing Interface Forum,
    MPI-2: Extensions to the Message Passing Interface,
    1997.

Source Code:


Last revised on 25 June 2020.