Product specifications
Table Of Contents
- Table of Contents
- 1 Introduction
- 2 Feature Overview
- 3 Step-by-Step Cluster Setup and MPI Usage Checklists
- 4 InfiniPath Cluster Setup and Administration
- Introduction
- Installed Layout
- Memory Footprint
- BIOS Settings
- InfiniPath and OpenFabrics Driver Overview
- OpenFabrics Drivers and Services Configuration and Startup
- Other Configuration: Changing the MTU Size
- Managing the InfiniPath Driver
- More Information on Configuring and Loading Drivers
- Performance Settings and Management Tips
- Host Environment Setup for MPI
- Checking Cluster and Software Status
- 5 Using QLogic MPI
- Introduction
- Getting Started with MPI
- QLogic MPI Details
- Use Wrapper Scripts for Compiling and Linking
- Configuring MPI Programs for QLogic MPI
- To Use Another Compiler
- Process Allocation
- mpihosts File Details
- Using mpirun
- Console I/O in MPI Programs
- Environment for Node Programs
- Environment Variables
- Running Multiple Versions of InfiniPath or MPI
- Job Blocking in Case of Temporary InfiniBand Link Failures
- Performance Tuning
- MPD
- QLogic MPI and Hybrid MPI/OpenMP Applications
- Debugging MPI Programs
- QLogic MPI Limitations
- 6 Using Other MPIs
- A mpirun Options Summary
- B Benchmark Programs
- C Integration with a Batch Queuing System
- D Troubleshooting
- Using LEDs to Check the State of the Adapter
- BIOS Settings
- Kernel and Initialization Issues
- OpenFabrics and InfiniPath Issues
- Stop OpenSM Before Stopping/Restarting InfiniPath
- Manual Shutdown or Restart May Hang if NFS in Use
- Load and Configure IPoIB Before Loading SDP
- Set $IBPATH for OpenFabrics Scripts
- ifconfig Does Not Display Hardware Address Properly on RHEL4
- SDP Module Not Loading
- ibsrpdm Command Hangs when Two Host Channel Adapters are Installed but Only Unit 1 is Connected to the Switch
- Outdated ipath_ether Configuration Setup Generates Error
- System Administration Troubleshooting
- Performance Issues
- QLogic MPI Troubleshooting
- Mixed Releases of MPI RPMs
- Missing mpirun Executable
- Resolving Hostname with Multi-Homed Head Node
- Cross-Compilation Issues
- Compiler/Linker Mismatch
- Compiler Cannot Find Include, Module, or Library Files
- Problem with Shell Special Characters and Wrapper Scripts
- Run Time Errors with Different MPI Implementations
- Process Limitation with ssh
- Number of Processes Exceeds ulimit for Number of Open Files
- Using MPI.mod Files
- Extending MPI Modules
- Lock Enough Memory on Nodes When Using a Batch Queuing System
- Error Creating Shared Memory Object
- gdb Gets SIG32 Signal Under mpirun -debug with the PSM Receive Progress Thread Enabled
- General Error Messages
- Error Messages Generated by mpirun
- MPI Stats
- E Write Combining
- F Useful Programs and Files
- G Recommended Reading
- Glossary
- Index

5–Using QLogic MPI
Introduction
5-2 IB6054601-00 H
S
Other MPIs
Other high-performance MPIs, such as HP-MPI version 2.3, Open MPI
(release 1.2.8), Ohio State University MVAPICH (1.1), and Scali 5.6.4 (Platform)
MPI, have been ported to the PSM interface.
Open MPI, MVAPICH, HP-MPI, and Scali also run over IB Verbs (the Open
Fabrics Alliance API that provides support for user level upper layer protocols like
MPI). Intel MPI, although not ported to the PSM interface, is supported over
uDAPL, which uses IB Verbs. For more information, see “Using Other MPIs” on
page 6-1.
Linux File I/O in MPI Programs
MPI node programs are Linux programs, which can execute file I/O operations to
local or remote files in the usual ways, through APIs of the language in use.
Remote files are accessed via a network file system, typically NFS. Parallel
programs usually need to have some data in files to be shared by all of the
processes of an MPI job. Node programs can also use non-shared, node-specific
files, such as for scratch storage for intermediate results or for a node’s share of a
distributed database.
There are different ways of handling file I/O of shared data in parallel
programming. You may have one process, typically on the front end node or on a
file server, which is the only process to touch the shared files, and which passes
data to and from the other processes via MPI messages. Alternately, the shared
data files can be accessed directly by each node program. In this case, the shared
files are available through some network file support, such as NFS. Also, in this
case, the application programmer is responsible for ensuring file consistency,
either through proper use of file locking mechanisms offered by the operating
system and the programming language, such as fcntl in C, or by using MPI
synchronization operations.
MPI-IO with ROMIO
MPI-IO is the part of the MPI-2 standard, supporting collective and parallel file I/O
operations. One advantage of using MPI-IO is that it can take care of managing
file locks when file data is shared among nodes.
QLogic MPI includes ROMIO version 126, a high-performance, portable
implementation of MPI-IO from Argonne National Laboratory. ROMIO includes
everything defined in the MPI-2 I/O chapter of the MPI-2 standard except support
for file interoperability and user-defined error handlers for files. Of the MPI-2
features, QLogic MPI includes only the MPI-IO features implemented in ROMIO
version 126 and the generalized MPI_All to allow communication exchange. See
the ROMIO documentation at http://www.mcs.anl.gov/romio
for details.
NFS, PanFS, and local (UFS) support is enabled.