OPEN_MP_ITHACA
C Programs Using OpenMP on Virginia Tech's ITHACA Cluster


OPEN_MP_ITHACA is a directory of C examples which show the results of running various C programs on the Virginia Tech ITHACA cluster, with the OpenMP system for parallel programming on shared memory machines.

In general, the programs were compiled with a command like:

gcc -fopenmp compute_pi.c
and then the number of threads were declared by
export OMP_NUM_THREADS=8
for the Bourne, Korn or Bash shells, or
setenv OMP_NUM_THREADS 8
for the C or T shells, and then the program was run with a command like
compute_pi > compute_pi_output.txt

Related Data and Programs:

MPI is a directory of C programs which illustrate the use of MPI for parallel programming in a distributed memory environment.

OPEN_MP is a directory of C examples which illustrate the use of the OpenMP application program interface for carrying out parallel computations in a shared memory environment.

OPEN_MP_STUBS is a C library which implements a "stub" version of OpenMP, so that an OpenMP program can be compiled, linked and executed on a system that does not have OpenMP installed.

OPEN_MP_ITHACA examples are available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version.

OPEN_MP_SGI C programs which illustrates the use of OpenMP on the Virginia Tech SGI systems.

Reference:

  1. Rohit Chandra, Leonardo Dagum, Dave Kohr, Dror Maydan, Jeff McDonald, Ramesh Menon,
    Parallel Programming in OpenMP,
    Morgan Kaufmann, 2001,
    ISBN: 1-55860-671-8,
    LC: QA76.642.P32.
  2. Barbara Chapman, Gabriele Jost, Ruud vanderPas, David Kuck,
    Using OpenMP: Portable Shared Memory Parallel Processing,
    MIT Press, 2007,
    ISBN13: 978-0262533027.
  3. OpenMP Application Program Interface,
    Version 2.5,
    May 2005.

Examples and Tests:

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;

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


Last revised on 29 August 2009.