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
QLogic MPI Details
5-16 IB6054601-00 H
S
Generally, mpirun tries to distribute the specified number of processes evenly
among the nodes listed in the mpihosts file. However, if the number of
processes exceeds the number of nodes listed in the mpihosts file, then some
nodes will be assigned more than one instance of the program.
Another command line option, -ppn, instructs mpirun to assign a fixed number p
of node programs (processes) to each node, as it distributes n instances among
the nodes:
$ mpirun -np n -m mpihosts -ppn p program-name
This option overrides the :process_count specifications, if any, in the lines of
the mpihosts file. As a general rule, mpirun distributes the n node programs
among the nodes without exceeding, on any node, the maximum number of
instances specified by the :process_count option. The value of
the :process_count
option is specified by either the -ppn command line
option or in the mpihosts file.
Typically, the number of node programs should not be larger than the number of
processor cores, at least not for compute-bound programs.
This option specifies the number of processes to spawn. If this option is not set,
then environment variable MPI_NPROCS is checked. If MPI_NPROCS is not set,
the default is to determine the number of processes based on the number of hosts
in the machinefile -M or the list of hosts -H.
-ppn processes-per-node
This option creates up to the specified number of processes per node.
Each node program is started as a process on one node. While a node program
may fork child processes, the children themselves must not call MPI functions.
The -distributed=on|off option has been added to mpirun. This option
reduces overhead by enabling mpirun to start processes in parallel on multiple
nodes. Initially, mpirun spawns one mpirun child per node from the root node,
each of which in turn spawns the number of local processes for that particular
node. Control the use of distributed mpirun job spawning mechanism with this
option:
-distributed [=on|off]
The default is on. To change the default, put this option in the global
mpirun.defaults file or a user-local file. See “Environment for Node
Programs” on page 5-17 and “Environment Variables” on page 5-18 for details.
NOTE:
When the -np value is larger than the number of nodes in the mpihosts file
times the -ppn value, mpirun cycles back through the hostsfile, assigning
additional node programs per host.