Back to CFM home             Brown University



Outline:


  • IBM RS/6000 AIX Programming Environment

  • IBM RS/6000 SP Parallel Environment

  • PESSL Parallel version of ESSL for parallel BLAS, FFTs and some ScaLAPACK routines. Requires use of the BLACS.
  • Message Passing Libraries:
    MPI (Message Passing Interface) (This tutorial will deal exclusively with MPI)
    The emerging Message Passing Standard: Currently at version 1.1, it supports more functionality than most if not all other alternatives. Recommended for all future portable code development. Disadvantages include the inability to spawn processes (as in PVM) (the Ohio Supercomputing Center's implementation of MPI called LAM corrects that) and that it is (currently) a less robust environment on workstations compared to PVM. The trend is towards use of MPI instead of PVM though. Also missing from the MPI standard is parallel I/O. Some of these problems will be resolved by the emerging MPI-2 standard. The SP2 at CFM supports:
    MPL (Message Passing Library)
    Previously known as EUI and EUI-H this is IBM's initial high performance message passing library for the SP. It is more "lightweight" than MPI but offers less functionality and roughly the same performance as IBM's MPI. Currently will give the best performance on the machine but the drawback is that the code is non-portable. IBM is basing its future work on MPI mainly.
    PVM (Parallel Virtual Machine)
    Probably the best known of message-passing libraries PVM is a very robust by now system for performing parallel computations on heterogeneous networks of workstations and provides for fault-tolerant operation with dynamic process spawning making it useful for industrial applications. However on dedicated MPPs as the IBM SP2 its performance is not optimal and compared to MPI its functionality is more restrictive. The SP2 at CFM supports:
    • PVMe - IBM's proprietary modified PVM, offers better performance at slightly reduced functionality: it doesn't support dynamic addition/deletion of hosts. The current version is based on ORNL PVM 3.2.6 and will not work properly with codes using the extra functions that appeared with PVM 3.3. The version to come with AIX 4.1.4 is PVM 3.3 based.
    • ORNL PVM 3.3.10. Currenlty it offers much worse performance than PVMe but after the upgrade to AIX 4.1.4 and IBM's MPI, PVM 3.3.10 built on top of MPI will provide better performance than PVMe in terms of both latency and bandwidth.
    NXLib (for Paragon users)
    For people with Paragon codes: a quick and easy way to run their codes on the SP (or a network of workstations). Communications will be slow (as NXLib will be treating the SP2 as a collection of IBM workstations connected via ethernet), so moving on to MPI is encouraged.
    Other message passing libraries
    TCGMSG, P4 etc. could be installed if needed (contact ce107@cfm.brown.edu)
  • Parallel debuggers:
  • Visualization and Performance Monitoring Tool (VT): Trace Visualization for MPL codes and Performance Monitoring.
  • Program Marker Array (easy way to check program progress and load balancing). Instead of print statements used to monitor the code, one can use pmarray.
  • System Status Display (check the utilization of SP2 nodes)




    Basic Parallel Programming

  • MPI Basics (Implementing the PI program)


  • More MPI routines

  • Examples from Linear Algebra

  • 2-D Parallel FFT


  • Compiling, Linking and Running MPI applications

  • Running

  • I/O and storage

  • General Guidelines on Parallelization


  • More Information