Last updated: 09/16/2004
SCD's production computing platforms are clusters of symmetric multiprocessor (SMP) computers. While you can run single-processor jobs on these cluster systems, compute-intensive tasks require you to use multiple processors. The cluster systems at NCAR have many nodes with 4 to 32 processors per node.
To exploit the power of cluster systems, programmers combine many processors and may also combine multiple compute nodes.
This is called parallel programming.
Parallel programmming has two aspects:
Parallel programs are called "hybrid" when they use both threads and message passing.
Threads run multiple processors within a node using OpenMP directives. The Supercomputing98 (SC98) conference featured an excellent OpenMP tutorial.
Note: Many vendors supply their own proprietary thread package that is often integrated with the compiler (such as Cray's !MIC$ directives for autotasking). However, SCD recommends that you use OpenMP since it is the POSIX thread standard and is available on all systems.
Message passing exchanges data between multiple nodes using MPI, the Message Passing Interface. Argonne National Laboratory provides a good selection of MPI tutorials.
Note: Many vendors supply their own proprietary message passing library that is often tuned to their architecture. However, SCD advises you to use the POSIX-standard message-passing library -- MPI -- for which efficient implementations are provided on each vendor's platform.
If you are not familiar with parallel programming, Ian Foster's book Designing and Building Parallel Programs provides an excellent introduction.
This user documentation provides beginning to intermediate-level guidance for the production computing systems:
Technical questions? Send e-mail to consult1@ucar.edu or call the SCD consultant on duty at 303-497-1278.
Problems with this document? Send e-mail to dig@ucar.edu
© Copyright 1996-2004. University Corporation for Atmospheric Research (UCAR). All Rights Reserved.
Address of this page: http://www.scd.ucar.edu/tcg/consweb/parallel.prog.html