QUAD2_MPI
Quadrature using MPI
QUAD2_MPI
is a FORTRAN77 program which
approximates a multidimensional integral using a quadrature rule. The
computation is done in parallel by using MPI.
The quadrature rule is defined by three text files:
-
the "X" file lists the abscissas (N rows, M columns);
-
the "W" file lists the weights (N rows);
-
the "R" file lists the integration region corners
(2 rows, M columns);
The program assumes that the names of the three files can be deduced from
the file_root. For instance, if the file_root was "cc_d2_level5", this
implies that
-
the "X" file is cc_d2_level5_x.txt;
-
the "W" file is cc_d2_level5_w.txt;
-
the "R" file is cc_d2_level5_r.txt;
Usage:
quad2_mpi file_root
where
-
file_root is the "root" name for a set of three files that
define a quadrature rule.
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
QUAD2_MPI is available in
a C version and
a C++ version and
a FORTRAN90 version and
a FORTRAN77 version.
Related Data and Programs:
HEAT_MPI
is a FORTRAN77 program which
solves the 1D Time Dependent Heat Equation using MPI.
HELLO_MPI,
a FORTRAN77 program which
prints out "Hello, world!" using the MPI parallel programming environment.
MOAB,
examples which
illustrate the use of the MOAB job scheduler for a computer cluster.
MPI
is a directory of FORTRAN77 examples which
illustrate the use of the MPI application program interface
for carrying out parallel computatioins in a distributed memory environment.
MULTITASK_MPI,
a FORTRAN77 program which
demonstrates how to "multitask", that is, to execute several unrelated
and distinct tasks simultaneously, using MPI for parallel execution.
QUAD_OPENMP
is a FORTRAN77 program which
approximates an integral using a quadrature rule, and carries out the
computation in parallel using OpenMP.
SATISFY_MPI
is a FORTRAN77 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.
Reference:
-
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.
-
William Gropp, Ewing Lusk, Anthony Skjellum,
Using MPI: Portable Parallel Programming with the
Message-Passing Interface,
Second Edition,
MIT Press, 1999,
ISBN: 0262571323.
-
William Gropp, Ewing Lusk, Rajiv Thakur,
Using MPI-2: Advanced Features of the Message-Passing
Interface,
Second Edition,
MIT Press, 1999,
ISBN: 0262571331.
-
Stan Openshaw, Ian Turton,
High Performance Computing and the Art of Parallel Programming:
an Introduction for Geographers, Social Scientists, and
Engineers,
Routledge, 2000,
ISBN: 0415156920.
-
Peter Pacheco,
Parallel Programming with MPI,
Morgan Kaufman, 1996,
ISBN: 1558603395,
LC: QA76.642.P3.
-
Sudarshan Raghunathan,
Making a Supercomputer Do What You Want: High Level Tools for
Parallel Programming,
Computing in Science and Engineering,
Volume 8, Number 5, September/October 2006, pages 70-80.
-
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.
-
Scott Vetter, Yukiya Aoyama, Jun Nakano,
RS/600 SP: Practical MPI Programming,
IBM Redbooks, 1999,
ISBN: 0738413658.
-
The MPI web site at Argonne National Lab:
http://www-unix.mcs.anl.gov/mpi/
-
The Message Passing Interface Forum,
MPI: A Message Passing Interface Standard,
1995,
Available online from
the MPI Forum.
-
The Message Passing Interface Forum,
MPI-2: Extensions to the Message Passing Interface,
1997,
Available online from
the MPI Forum.
Source Code:
Examples and Tests:
CC_D2_LEVEL5 is a quadrature rule for dimension 2, of the fifth level
of fineness. Our test involves having the program read this rule, and apply
it to estimate the integral of a test function.
QUAD_MPI_STUBS is a test in which we compile the source code with
the MPI_STUBS library, so that it only runs on one processor.
QUAD_MPI can be run on System X.
List of Routines:
-
MAIN is the main program for QUAD_MPI.
-
CH_CAP capitalizes a single character.
-
CH_EQI is a case insensitive comparison of two characters for equality.
-
CH_TO_DIGIT returns the integer value of a base 10 digit.
-
DTABLE_DATA_READ reads data from a DTABLE file.
-
DTABLE_HEADER_READ reads the header from a DTABLE file.
-
FILE_COLUMN_COUNT counts the number of columns in the first line of a file.
-
FILE_ROW_COUNT counts the number of row records in a file.
-
GET_UNIT returns a free FORTRAN unit number.
-
I4_DIV_ROUNDED computes the rounded result of I4 division.
-
I4_HUGE returns a "huge" I4.
-
I4_SIGN evaluates the sign of an I4.
-
S_TO_I4 reads an I4 from a string.
-
S_TO_R8 reads an R8 from a string.
-
S_TO_R8VEC reads an R8VEC from a string.
-
S_WORD_COUNT counts the number of "words" in a string.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
P28_EXACT returns the exact integral for problem 28.
-
P28_F evaluates the integrand for problem 28.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 05 May 2008.