MD_OPEN_MP
Molecular Dynamics using OpenMP


MD_OPEN_MP is a C program which carries out a molecular dynamics simulation, using OpenMP for parallel execution.

On an Apple PowerPC G5 with two processors, the following results were observed for 400 steps and 1000 particles:
ThreadsTime
1179.632 secconds
290.548 seconds
495.303 seconds

Usage:

In the BASH shell, the program could be run with 2 threads using the commands:

        export OMP_NUM_THREADS=2
        ./md_open_mp
      

Licensing:

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

Related Data and Programs:

FFT_OPEN_MP is a C program which demonstrates the computation of a Fast Fourier Transform in parallel, using OpenMP.

MD is a C program which carries out a molecular dynamics simulation, and is intended as a starting point for implementing an OpenMP parallel version.

MD_OPEN_MP is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version.

MD_PARALLEL is a MATLAB program which is intended to be run in parallel using MATLAB's "PARFOR" feature.

MD1 is a FORTRAN90 program which carries out a molecular dynamics simulation.

MD2 is a FORTRAN90 program which carries out a molecular dynamics simulation.

MD3 is a FORTRAN90 program which carries out a molecular dynamics simulation.

MD3GLUE is a FORTRAN90 program which carries out a molecular dynamics simulation.

MDBNCH is a FORTRAN77 program which is a benchmark molecular simulation calculation.

MXV_OPEN_MP, a C 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, a directory of C programs which illustrate the use of OpenMP.

OPEN_MP_ITHACA C programs which illustrate the use of OpenMP on the Virginia Tech ITHACA cluster.

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.

QUAD_OPEN_MP is a C program which approximates an integral using a quadrature rule, and carries out the computation in parallel using OpenMP.

SATISFIABILITY_OPEN_MP is a C 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 C program which reimplements the SGEFA/SGESL linear algebra routines from LINPACK for use with OpenMP.

USING_OPEN_MP_SGI is an HTML document which describes how to start with an OpenMP program on your home machine, transfer it to one of the Virginia Tech SGI systems, compile it, run it, and retrieve the output.

ZIGGURAT_OPEN_MP, a C program which demonstrates how the ZIGGURAT library can be used to generate random numbers in an OpenMP parallel program.

Reference:

  1. Peter Arbenz, Wesley Petersen,
    Introduction to Parallel Computing - A practical guide with examples in C,
    Oxford University Press,
    ISBN: 0-19-851576-6,
    LC: QA76.58.P47.
  2. 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.
  3. Barbara Chapman, Gabriele Jost, Ruud vanderPas, David Kuck,
    Using OpenMP: Portable Shared Memory Parallel Processing,
    MIT Press, 2007,
    ISBN13: 978-0262533027,
    LC: QA76.642.C49.

Source Code:

Examples and Tests:

MD_OPEN_MP_RUN runs MD_OPEN_MP interactively.

MD_OPEN_MP_BATCH runs MD_OPEN_MP through the batch system.

List of Routines:

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


Last revised on 02 September 2009.