Product specifications

Table Of Contents
D–Troubleshooting
QLogic MPI Troubleshooting
IB6054601-00 H D-17
A
For the second option, change the file /etc/ld.so.conf on the compute
nodes rather than using the -Wl,-rpath, option when compiling on the
development node. It is assumed that the mpi-lib-* RPM is installed on the
compute nodes with the same --prefix /path/to/libs option as on the
development nodes. Then, on the computer nodes, add the following lines to the
file /etc/ld.so.conf:
/path/to/libs/lib
/path/to/libs/lib64
To make sure that the changes take effect, run (as a root user):
# /etc/ldconfig
The libraries can now be found by the runtime linker on the compute nodes. The
advantage to this method is that it works for all InfiniPath programs, without
having to remember to change the compile/link lines.
Instead of either of the two previous mechanisms, you can also put the following
line in the ~/.mpirunrc file:
export LD_LIBRARY_PATH=/path/to/libs/{lib,lib64}
See “Environment for Node Programs” on page 5-17 for more information on
using the -rcfile option with mpirun.
Choices between these options are left up to the cluster administrator and the MPI
developer. See the documentation for your compiler for more information on the
compiler options.
Problem with Shell Special Characters and Wrapper Scripts
Be careful when dealing with shell special characters, especially when using the
mpicc, etc. wrapper scripts. These characters must be escaped to avoid the shell
interpreting them.
For example, when compiling code using the -D compiler flag, mpicc (and other
wrapper scripts) will fail if the defined variable contains a space, even when
surrounded by double quotes. In the example below, the result of the -show
option reveals what happens to the variable:
$ mpicc -show -DMYDEFINE="some value" test.c
gcc -c -DMYDEFINE=some value test.c
gcc -Wl,--export-dynamic,--allow-shlib-undefined test.o -lmpich