Hi,

I am trying to compile our codes with open mpi 1.4.3, by intel 
compilers 8.1. 

(1) For open mpi 1.4.3 installation on linux beowulf cluster, I use:

./configure --prefix=/home/yiguang/dmp-setup/openmpi-1.4.3 
CC=icc 
CXX=icpc F77=ifort FC=ifort --enable-static LDFLAGS="-i-static -
static-libcxa" --with-wrapper-ldflags="-i-static -static-libcxa" 2>&1 |
tee config.log

and 

make all install 2>&1 | tee install.log

The issue is that I am trying to build open mpi 1.4.3 with intel 
compiler libraries statically linked to it, so that when we run 
mpirun/orterun, it does not need to dynamically load any intel 
libraries. But what I got is mpirun always asks for some intel 
library(e.g. libsvml.so) if I do not put intel library path on library 
search path($LD_LIBRARY_PATH). I checked the open mpi user 
archive, it seems only some kind user mentioned to use
"-i-static"(in my case) or "-static-intel" in ldflags, this is what I did,
but it seems not working, and I did not get any confirmation whether 
or not this works for anyone else from the user archive. could 
anyone help me on this? thanks!

(2) After compiling and linking our in-house codes  with open mpi 
1.4.3, we want to make a minimal list of executables for our codes 
with some from open mpi 1.4.3 installation, without any dependent 
on external setting such as environment variables, etc.

I orgnize my directory as follows:

parent---
            |
                package
                |
                bin  
                |
                lib
                |
                tools

In package/ directory are executables from our codes. bin/ has 
mpirun and orted, copied from openmpi installation. lib/ includes 
open mpi libraries, and intel libraries. tools/ includes some c-shell 
scripts to launch mpi jobs, which uses mpirun in bin/.

The parent/ directory is on a NFS shared by all nodes of the 
cluster. In ~/.bashrc(shared by all nodes too), I clear PATH and 
LD_LIBRARY_PATH without direct to any directory of open mpi 
1.4.3 installation. 

First, if I set above bin/ directory  to PATH and lib/ 
LD_LIBRARY_PATH in ~/.bashrc, our parallel codes(starting by the 
C shell script in tools/) run AS EXPECTED without any problem, so 
that I set other things right.

Then again, to avoid modifying ~/.bashrc or ~/.profile, I set bin/ to 
PATH and lib/ to LD_LIBRARY_PATH in the C shell script under 
tools/ directory, as:

setenv PATH /path/to/bin:$PATH
setenv LD_LIBRARY_PATH /path/to/lib:$LD_LIBRARY_PATH

Then I start our codes from the C shell script in tools/, I got 
message: "orted command not found", which is from slave nodes, 
and orted should be in directory /path/to/bin. So I guess the $PATH 
variable or more general, the environment variables set in the script 
are not passed to the slave nodes by mpirun(I use absolute path for 
mpirun in the script). After I checked open mpi FAQ, I tried to set 
the "--prefix /path/to/parent" to mpirun command in the C shell 
script. it still does not work. Does any one have any hints? thanks!

I have tried my best to describe the issues, if anything not clear, 
please let me know as well. Thanks a lot for helps!

Sincerely,
Yiguang

Reply via email to