QUAD_OPEN_MP is a FORTRAN90 program which approximates a multidimensional integral using a quadrature rule. The quadrature computation is done with OpenMP.
The quadrature rule is defined by three text files:
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
On an Apple PowerPC G5 with two processors, the following results were observed:
| Threads | Quadrature rule | Time |
|---|---|---|
| 1 | cc_d10_level4 | 0.0019 seconds |
| 2 | cc_d10_level4 | 0.0011 seconds |
| 4 | cc_d10_level4 | 0.0012 seconds |
| 1 | cc_d10_level5 | 0.0086 seconds |
| 2 | cc_d10_level5 | 0.0045 seconds |
| 4 | cc_d10_level5 | 0.0046 seconds |
In the BASH shell, the program could be run with 2 threads using the commands:
export OMP_NUM_THREADS=2
quad_open_mp file_root
where file_root is the "root" name for a set of three files that
define a quadrature rule.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
CLENSHAW_CURTIS is a FORTRAN90 library which can set up a Clenshaw Curtis quadrature grid in multiple dimensions.
FFT_OPEN_MP is a FORTRAN90 program which demonstrates the computation of a Fast Fourier Transform in parallel, using OpenMP.
INTEGRAL_TEST is a FORTRAN90 program which uses test integrals to evaluate sets of quadrature points.
MD_OPEN_MP is a FORTRAN90 program which carries out a molecular dynamics simulation using OpenMP.
MPI is a directory of FORTRAN90 examples which illustrate the use of the MPI application program interface for carrying out parallel computatioins in a distributed memory environment.
MXV_OPEN_MP is a FORTRAN90 program which compares the performance of plain vanilla Fortran and the FORTRAN90 intrinsic routine MATMUL, for the matrix multiplication problem y=A*x, with and without parallelization by OpenMP.
OPEN_MP is a directory of FORTRAN90 examples which illustrate the use of the OpenMP application program interface for carrying out parallel computatioins in a shared memory environment.
OPEN_MP_ITHACA FORTRAN90 programs which illustrate the use of OpenMP on the Virginia Tech ITHACA cluster.
PRODUCT_RULE is a FORTRAN90 program which can create a multidimensional quadrature rule as a product of one dimensional rules.
QUAD_MPI is a FORTRAN90 program which approximates an integral using a quadrature rule, and carries out the computation in parallel using MPI.
QUAD_OPEN_MP is also available in a C version and a C++ version and a FORTRAN77 version.
QUADRATURE_RULES is a dataset directory which contains many examples of files that define quadrature rules.
QUADRATURE_TEST is a FORTRAN90 program which reads files defining a quadrature rule, and applies them to all the test integrals defined by TEST_NINT.
PETSC is a scientific library for parallel computations.
SATISFIABILITY_OPEN_MP is a FORTRAN90 program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, using OpenMP for parallel execution.
SGEFA_OPEN_MP is a FORTRAN90 program which reimplements the SGEFA/SGESL linear algebra routines from LINPACK for use with OpenMP.
STROUD is a FORTRAN90 library containing quadrature rules for a variety of unusual areas, surfaces and volumes in 2D, 3D and N-dimensions.
TEST_NINT is a FORTRAN90 library of routines which defines a set of integrand functions to be used for testing multidimensional quadrature rules and routines.
TESTPACK is a FORTRAN90 library of functions which define a set of integrands used to test multidimensional quadrature.
ZIGGURAT_OPEN_MP, a FORTRAN90 program which demonstrates how the ZIGGURAT library can be used to generate random numbers in an OpenMP parallel program.
CC_D10_LEVEL4 is a Clenshaw-Curtis sparse grid rule for a 10 dimensional hypercube, at the 4th level of fineness.
CC_D10_LEVEL5 is a Clenshaw-Curtis sparse grid rule for a 10 dimensional hypercube, at the 5th level of fineness.
You can go up one level to the FORTRAN90 source codes.