OPEN_MP_STUBS is a FORTRAN90 library which constitutes a "stub" implementation of the OpenMP 2.5 standard.
A stub library is useful when you want to try out a program on a system that does not have OpenMP, or when you need to have a formally complete program to analyze, or in other cases where you want to ignore the actual OpenMP library. A stub library can also help to understand the structure of the actual library.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
MPI is a directory of FORTRAN90 programs which illustrate the use of MPI for doing parallel programming in a distributed memory environment, using message passing.
OPEN_MP is a directory of FORTRAN90 examples which illustrate the use of the OpenMP application program interface for carrying out parallel computations in a shared memory environment.
OPEN_MP_ITHACA FORTRAN90 programs which illustrate the use of OpenMP on the Virginia Tech ITHACA cluster.
OPEN_MP_STUBS is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version.
PESSL is a directory of FORTRAN90 examples which illustrate the use of IBM's PESSL parallel mathematical library.
PETSC is a directory of FORTRAN90 examples which illustrate the use of the PETSC scientific library for parallel computations.
Note that these examples are normally run in parallel with OpenMP. The point being made here is that such programs can be run sequentially, as though OpenMP were available, by calling the OPEN_MP_STUBS library. They don't run well (fast) - it's just remarkable that they run at all.
COMPUTE_PI shows how information can be shared. Several processors need to compute pieces of a sum that will approximate pi.
HELLO is a very simple program which calls an OpenMP subroutine to set the number of threads, and then has each thread say hello;
HELMHOLTZ is a more extensive program that solves the Helmholtz equation on a regular grid, using a Jacobi iterative linear equation solver with overrelaxation;
MD is a time dependent molecular dynamics code;
Again, please don't be confused. These routines have the same names as the real OpenMP library; they just don't do anything. Well, not much, anyway. They do just enough to let a program run in sequential mode.
You can go up one level to the FORTRAN90 source codes.