Hi Jeff

Comments after your text....

Jeff Squyres wrote 2/5/07:

Greetings Joe.

What we did was to make 2 sets of environment variables that you can use to modify OMPI's internal path behavior:

1. OPAL_DESTDIR: If you want to use staged builds (a la RPM builds), you can set the environment variable OPAL_DESTDIR. For example:

    ./configure --prefix=/opt/ompi
    make install DESTDIR=/tmp
    # at this point, OMPI is installed into /tmp/opt/ompi
    setenv OPAL_DESTDIR /tmp
    # put /tmp/opt/ompi in your path, then run ompi_info
    ompi_info

Hence, OPAL_DESTDIR simply prefixes every internal path with the destdir.

2. OPAL_PREFIX: If you want to wholly override where the OMPI installation is, set OPAL_PREFIX to the new prefix value (quite similar to the LAMHOME environment variable, but slightly better). For example:

    ./configure --prefix=/opt/ompi
    make install
    mv /opt/ompi /home/ompi
    setenv OPAL_PREFIX /home/ompi
    ompi_info

This will re-base all of OMPI's internal directories to key off the new prefix value. Similarly, OPAL_* environment variables exist for all other GNU-standard directories (OPAL_BINDIR, OPAL_INCLUEDIR, ...etc.). Note that the default values of these variables are their GNU counterparts, so OMPI_BINDIR defaults to $ {prefix}/bin -- which requires resolving ${prefix} first (i.e., OPAL_PREFIX). Hence, setting OPAL_PREFIX will effectively change all the others. We anticipate that most people will likely only ever use OPAL_PREFIX.
I finally got a chance to try V1.2.  I am having the same issue:

I installed with:
./configure --prefix=/usr/local/openmpi-1.2-1
make prefix=/usr/local/openmpi-1.2-1
make install prefix=/usr/local/openmpi-1.2-1

I can run with:
em64t6 <155> /usr/local/openmpi-1.2-1/bin/mpirun -n 1 --host em64t6 hostname
em64t6
em64t6 <156> cp -r /usr/local/openmpi-1.2-1 /tmp
em64t6 <157> /tmp/openmpi-1.2-1/bin/mpirun -n 1 --host em64t6 hostname
em64t6

Then I move the directory:
[root@em64t6 openmpi-1.2]# cd /usr/local/
[root@em64t6 local]# mv openmpi-1.2-1/  openmpiHIDE

Then I try to run:

em64t6 <158> /tmp/openmpi-1.2-1/bin/mpirun -n 1 --host em64t6 hostname
/tmp/openmpi-1.2-1/bin/mpirun: error while loading shared libraries: libopen-rte.so.0: cannot open shared object file: No such file or directory

If I set the env:
em64t6 <160> setenv OPAL_PREFIX /tmp/openmpi-1.2-1
em64t6 <164> setenv OPAL_DESTDIR /tmp/openmpi-1.2-1/
em64t6 <166> set path=( /tmp/openmpi-1.2-1/bin $path)
em64t6 <168> setenv LD_LIBRARY_PATH /tmp/openmpi-1.2-1/lib

The error becomes:
em64t6 <169> /tmp/openmpi-1.2-1/bin/mpirun -n 1 --host em64t6 hostname
[em64t6:30103] [NO-NAME] ORTE_ERROR_LOG: Not found in file runtime/orte_init_stage1.c at line 214
--------------------------------------------------------------------------
Sorry!  You were supposed to get help about:
   orte_init:startup:internal-failure
from the file:
   help-orte-runtime
But I couldn't find any file matching that name.  Sorry!
--------------------------------------------------------------------------
[em64t6:30103] [NO-NAME] ORTE_ERROR_LOG: Not found in file runtime/orte_system_init.c at line 42 [em64t6:30103] [NO-NAME] ORTE_ERROR_LOG: Not found in file runtime/orte_init.c at line 52
--------------------------------------------------------------------------
Sorry!  You were supposed to get help about:
   orterun:init-failure
from the file:
   help-orterun.txt
But I couldn't find any file matching that name.  Sorry!
--------------------------------------------------------------------------

The output from ompi_info is:

em64t6 <170> ompi_info
               Open MPI: 1.2
  Open MPI SVN revision: r14027
               Open RTE: 1.2
  Open RTE SVN revision: r14027
                   OPAL: 1.2
      OPAL SVN revision: r14027
                 Prefix: /usr/local/openmpi-1.2-1
Configured architecture: x86_64-unknown-linux-gnu
          Configured by: root
          Configured on: Tue Apr 10 09:39:28 PDT 2007
         Configure host: em64t6
               Built by: root
               Built on: Tue Apr 10 09:51:27 PDT 2007
             Built host: em64t6
             C bindings: yes
           C++ bindings: yes
     Fortran77 bindings: yes (all)
     Fortran90 bindings: no
Fortran90 bindings size: na
             C compiler: gcc
    C compiler absolute: /usr/bin/gcc
           C++ compiler: g++
  C++ compiler absolute: /usr/bin/g++
     Fortran77 compiler: g77
 Fortran77 compiler abs: /usr/bin/g77
     Fortran90 compiler: none
 Fortran90 compiler abs: none
            C profiling: yes
          C++ profiling: yes
    Fortran77 profiling: yes
    Fortran90 profiling: no
         C++ exceptions: no
         Thread support: posix (mpi: no, progress: no)
 Internal debug support: no
    MPI parameter check: runtime
Memory profiling support: no
Memory debugging support: no
        libltdl support: yes
  Heterogeneous support: yes
mpirun default --prefix: no
          MCA backtrace: execinfo (MCA v1.0, API v1.0, Component v1.2)
             MCA memory: ptmalloc2 (MCA v1.0, API v1.0, Component v1.2)
              MCA timer: linux (MCA v1.0, API v1.0, Component v1.2)


So the Prefix is not getting changed.  Can someone please
tell me what I am doing wrong?   I searched the archives,
but haven't found anything related.

I would like to:
1. install into one directory
2. Move the files
3. Run from the new directory.

The above is important if we redistribute and clients want to
install in a different directory.

Thanks,
Joe

-----

We've been calling this work "the installdirs patch" internally. It got finalized on a private branch literally just before we closed the 1.2 tree for release, so it's not going to make it into the final v1.2 -- it was just too late in the release process. It's not even on the OMPI trunk yet; we wanted to get OMPI v1.2 out before putting this patch on the trunk (to keep the trunk and v1.2 "somewhat similar"). We haven't yet discussed 1.2.1 as a group yet -- it's possible that the installdirs patch will make it into there (but I can't guarantee that).

That being said, I will be releasing OMPI v1.2ofed as part of the OpenFabrics Enterprise Distribution (OFED -- the open source InfiniBand stack) that will be the final community OMPI v1.2 release plus the installdirs patch. We need this installdirs stuff in the OFED installer for DESTDIR reasons.

I'd be happy to share the installdirs patch with anyone who wants it; it just won't make it into OMPI v1.2.



On Feb 2, 2007, at 6:28 PM, Joe Griffin wrote:

Hello,

I can see that Patrick posted my same error on:

http://www.open-mpi.org/community/lists/devel/2006/12/1230.php

Can I please find out the status?   I have a simple test case which
demonstrates the --prefix is not working on mpirun.  I build into
/usr/local/openmpi-1.1.3
and it works.  However, if I copy the files, remove the
/usr/local/openmpi-1.1.3/lib
and try to point to my new directory of /tmp/openmpi-1.1.3, it fails.


prompt <154> /usr/local/openmpi-1.1.3/bin/mpirun -n 1 --host em64t hostname
em64t
prompt <155> cp -r /usr/local/openmpi-1.1.3 /tmp
prompt <156> /tmp/openmpi-1.1.3/bin/mpirun -n 1 --host em64t hostname
em64t

# As ROOT:
[root@em64t openmpi-1.1.3]# mv /usr/local/openmpi-1.1.3/lib
/usr/local/openmpi-1.1.3/LLL


prompt <157> /tmp/openmpi-1.1.3/bin/mpirun -n 1 --host em64t --prefix
/tmp/openmpi-1.1.3 hostname
[em64t:26023] [NO-NAME] ORTE_ERROR_LOG: Not found in file
runtime/orte_init_stage1.c at line 214
---------------------------------------------------------------------- ---- It looks like orte_init failed for some reason; your parallel process is
likely to abort.  There are many reasons that a parallel process can
fail during orte_init; some of which are due to configuration or
environment problems.  This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an
Open MPI developer):

 orte_sds_base_select failed
 --> Returned value -13 instead of ORTE_SUCCESS

---------------------------------------------------------------------- ----
[em64t:26023] [NO-NAME] ORTE_ERROR_LOG: Not found in file
runtime/orte_system_init.c at line 42
[em64t:26023] [NO-NAME] ORTE_ERROR_LOG: Not found in file
runtime/orte_init.c at line 49
---------------------------------------------------------------------- ----
Open RTE was unable to initialize properly.  The error occured while
attempting to orte_init(). Returned value -13 instead of ORTE_SUCCESS. ---------------------------------------------------------------------- ----


The man page implies that --prefix would work.   I know my example is
silly.  The real case
involves going over a cluster, but the above is the simpliest case I
could create.
From the man page:

  --prefix <dir>
                Prefix directory that will  be  used  to  set  the
PATH  and
                LD_LIBRARY_PATH  on  the remote node before invoking
Open MPI
                or the target process.  See the "Remote  Execution"
section,
                below.

BTW - I am trying to migrate from LAM to OpenMPI.  The switch was
very painless.   Thanks for the good work.

Regards,
Joe


_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users



Reply via email to