27.12.2014 Views

QLogic OFED+ Host Software User Guide, Rev. B

QLogic OFED+ Host Software User Guide, Rev. B

QLogic OFED+ Host Software User Guide, Rev. B

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

F–Troubleshooting<br />

<strong>QLogic</strong> MPI Troubleshooting<br />

For the second option, change the file /etc/ld.so.conf on the compute<br />

nodes rather than using the -Wl,-rpath, option when compiling on the<br />

development node. It is assumed that the mpi-lib-* RPM is installed on the<br />

compute nodes with the same --prefix /path/to/libs option as on the<br />

development nodes. Then, on the computer nodes, add the following lines to the<br />

file /etc/ld.so.conf:<br />

/path/to/libs/lib<br />

/path/to/libs/lib64<br />

To make sure that the changes take effect, run (as a root user):<br />

# /etc/ldconfig<br />

The libraries can now be found by the runtime linker on the compute nodes. The<br />

advantage to this method is that it works for all InfiniPath programs, without<br />

having to remember to change the compile/link lines.<br />

Instead of either of the two previous mechanisms, you can also put the following<br />

line in the ~/.mpirunrc file:<br />

export LD_LIBRARY_PATH=/path/to/libs/{lib,lib64}<br />

See “Environment for Node Programs” on page 4-19 for more information on<br />

using the -rcfile option with mpirun.<br />

Choices between these options are left up to the cluster administrator and the MPI<br />

developer. See the documentation for your compiler for more information on the<br />

compiler options.<br />

Problem with Shell Special Characters and Wrapper Scripts<br />

Be careful when dealing with shell special characters, especially when using the<br />

mpicc, etc. wrapper scripts. These characters must be escaped to avoid the shell<br />

interpreting them.<br />

For example, when compiling code using the -D compiler flag, mpicc (and other<br />

wrapper scripts) will fail if the defined variable contains a space, even when<br />

surrounded by double quotes. In the following example, the result of the -show<br />

option reveals what happens to the variable:<br />

$ mpicc -show -DMYDEFINE="some value" test.c<br />

gcc -c -DMYDEFINE=some value test.c<br />

gcc -Wl,--export-dynamic,--allow-shlib-undefined test.o -lmpich<br />

F-16 D000046-005 B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!