We support two standards: OpenMP and MPI
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:
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
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 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
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: