Getting started on bluevista
last update:
05/04/2006
Parallel programmming has three aspects:
Bluevista is a cluster of Symmetric Multi Processor (SMP) systems, a computer architecture that has 78 eight-CPU nodes. Multiple simultaneous processes can be run within a node, on multiple nodes, or both. The CPUs on a node share that node's memory and I/O bus (data path). Each node runs its own copy of the AIX operating system. Any idle CPU can be assigned to any task, and additional CPUs and nodes can be utilized by a job to improve performance and handle increased loads.
Programming strategies
We outline four basic programming strategies here. These strategies allow you to match your program's requirements to the capabilities of the platform's computing architecture. All four strategies have the same goal: to obtain accurate results for computational problems in the minimum amount of wallclock time.
The four programming strategies, in order of increasing demands on the system and the programmer, are:
- One serial process
- One process that spawns multiple threads
- Multiple parallel processes that are single-threaded
One code acting on multiple data structures (Single Program Multiple Data -- SPMD)
Multiple codes acting on multiple data structures (Multiple Programs Multiple Data -- MPMD)- Hybrid: Multiple parallel processes (SPMD or MPMD) that use multiple threads
SMP threads
SMP is short for Symmetric Multiprocessing, and it refers to a computer architecture that provides multiple processors that complete individual processes simultaneously. The individual processes are the "threads." On NCAR cluster systems, a number of processors are placed on a shared-memory node, and SMP threads run on these nodes. The threads are under programmer control in the job code. Most commonly in Fortran, the control is in the form of OpenMP directives, although the Fortran OpenMP directives have pragma counterparts in C and C++ as well. This document provides an example of an OpenMP program.
Message passing
Message passing is a parallel programming style in which explicit messages containing user-defined data are sent between tasks. In Fortran, C, and C++ programs today, the programmer may define and control these messages by calls to a message-passing library called MPI (Message Passing Interface). This document provides an example of an MPI code. At NCAR, many of the flagship models such as CAM, CCSM, and WRF are available as MPI codes.
Hybrid
The hybrid programming model is one that uses both message passing and SMP threads. Programmers choose this model when the code benefits from both fine-scale and large-scale paralllelism. This document provides an example of a hybrid code. At NCAR, several of the flagship models such as CAM, CCSM, and WRF are available as hybrid codes, specifically as Fortran90 code involving both OpenMP directives and MPI library calls.
Next page | Table of contents - Getting started on bluevista
If you have questions about this document, please contact SCD Customer Support. You can also reach us by telephone 24 hours a day, seven days a week at 303-497-1278. Additional contact methods: consult1@ucar.edu and during business hours in NCAR Mesa Lab Suite 39.
© Copyright 2005. University Corporation for Atmospheric Research (UCAR). All Rights Reserved.
Address of this page: http://www.scd.ucar.edu/docs/bluevista/program.html