Parallel Programming
We support two standards: OpenMP and MPI
OpenMP
These classes are intended for users with some experience programming scientific
applications who are current or potential users of the WSU Origin 2000.
Here are links to the material that we used in the August, 2001 OpenMP/APO class:
1) Cover Page
2) OpenMP Slide Outline
3) OpenMP Class from OSC (see OSC link at bottom)
4) OpenMP Problem Notes and Solutions
5) APO Slide Outline
6) APO Presentation: Powerpoint or HTML
7) APO Solutions
8) Glossary and References
9) OpenMP Fortran Summary
10) OpenMP C/C++ Summary
See the Documentation page for manuals and man pages.
The following classes were used at KU:
- Uses of Supercomputing and basic Origin architecture (lecture): 3 hours
- Beginning parallel programming (hands-on): 4 hours
- Intermediate parallel programming (hands-on): 4 hours
Parallel Code Compilation and Executions
From Fortran 90, HPF and Multiprocessing
(Boston University):
There are different ways to compile source codes, depending on your objectives:
1.Use SGI's parallel mathematical libraries :
lego% f90 -o example -mp example.f90 -lscs_mp
2.Use loop-level parallel directives :
lego% f90 -o example -mp example.f90
Here, you must include parallel directives in example.f90 in order for parallel works to
take effect. -mp alerts the compiler that the source file contains directives. In
addition,
-mp also causes mp libraries to be linked.
3.Use apo to automatically parallelize and compile code
lego% f90 -o example -apo keep example.f90
To run job interactively at the monitor with 4 processors:
1.lego% setenv OMP_NUM_THREADS 4
2.lego% example
See also:
Using FORTRAN on
the SGI Origin 2000 (KU)
Designing and Building Parallel Programs
(An Online Publishing Project of Addison-Wesley Inc., Argonne National Laboratory, and the
NSF Center for Research on Parallel Computation.)
Parallel
Programming Workshop (Maui High Performance Computing Center)
Introduction to Parallel Processing on
SGI Shared Memory Computers (Boston University)
Tutorial: OpenMP: An API for Writing
Portable SMP Application Software (OpenMP.org)
Parallel Programming with OpenMP
[for Origin 2000] (Ohio Supercomputer Center)
OpenMP info at SGI
Java OMP (JOMP)
Though not a standard from OpenMP.org, here is
an implementation installed on hydra.
MPI: Message Passing Interface
MPI is a standard specification for a message passing interface, allowing portable
message passing programs in Fortran and C languages. MPI was created by the Message
Passing Interface Forum (MPIF). MPIF is not sanctioned or supported by any official
standards organization. Its goal was to develop a widely used standard for writing message
passing programs.
SGI supports implementations of MPI that are released as part of the Message Passing
Toolkit on Linux systems and IRIX systems. The MPI standard is available from the IRIS
InSight library (for customers who have access to that tool), and is documented online at
the following address: http://www.mcs.anl.gov/mpi
SGI Message Passing Toolkit:
Overview
SGI Message Passing Toolkit: MPI Programmers Manual
More about MPI
Further information on MPI is available from a variety of sources. The MPI Standard is
available in postscript, compressed postscript, and html.
The MPI Forum website has links to all of the
MPI documents, errata, and archives of the meetings of the Forum.
There are several tutorials devoted to MPI at
If you have questions about MPI that aren't answered in the FAQ, probably the quickest
way to get an answer is to post your question to the MPI
newsgroup.
There are also several other books devoted entirely or partially to MPI:
|