Ah ha, I think I got it.  There was actually a bug about disabling the memory 
manager in trunk/v1.5.x/v1.4.x.  I fixed it on the trunk and scheduled it for 
v1.6 (since we're trying very hard to get v1.5.5 out the door) and v1.4.5.

On the OMPI trunk on RHEL 5 with gcc 4.4.6, I can do this:

./configure --without-memory-manager LDFLAGS=--static --disable-shared 
--enable-static

And get a fully static set of OMPI executables.  For example:

-----
[10:41] svbu-mpi:~ % cd $prefix/bin
[10:41] svbu-mpi:/home/jsquyres/bogus/bin % ldd *
mpic++:
        not a dynamic executable
mpicc:
        not a dynamic executable
mpiCC:
        not a dynamic executable
mpicxx:
        not a dynamic executable
mpiexec:
        not a dynamic executable
mpif77:
        not a dynamic executable
mpif90:
        not a dynamic executable
mpirun:
        not a dynamic executable
ompi-clean:
        not a dynamic executable
ompi_info:
        not a dynamic executable
ompi-ps:
        not a dynamic executable
ompi-server:
        not a dynamic executable
ompi-top:
        not a dynamic executable
opal_wrapper:
        not a dynamic executable
ortec++:
        not a dynamic executable
ortecc:
        not a dynamic executable
orteCC:
        not a dynamic executable
orte-clean:
        not a dynamic executable
orted:
        not a dynamic executable
orte-info:
        not a dynamic executable
orte-ps:
        not a dynamic executable
orterun:
        not a dynamic executable
orte-top:
        not a dynamic executable
-----

So I think the answer here is: it depends on a few factors:

1. Need that bug fix that I just committed.
2. Libtool is stripping out -static (and/or --static?).  So you have to find 
some other flags to make your compiler/linker do static.
3. Your OS has to support static builds.  For example, RHEL6 doesn't install 
libc.a by default (it's apparently on the optional DVD, which I don't have).  
My RHEL 5.5 install does have it, though.


On Jan 27, 2012, at 11:16 AM, Jeff Squyres wrote:

> I've tried a bunch of variations on this, but I'm actually getting stymied by 
> my underlying OS not supporting static linking properly.  :-\
> 
> I do see that Libtool is stripping out the "-static" standalone flag that you 
> passed into LDFLAGS.  Yuck.  What's -Wl,-E?  Can you try "-Wl,-static" 
> instead?
> 
> 
> On Jan 25, 2012, at 1:24 AM, Ilias Miroslav wrote:
> 
>> Hello again,
>> 
>> I need own static "mpirun" for porting (together with the static executable) 
>> onto various (unknown) grid servers. In grid computing one can not expect 
>> OpenMPI-ILP64 installtion on each computing element. 
>> 
>> Jeff: I tried LDFLAGS in configure
>> 
>> ilias@194.160.135.47:~/bin/ompi-ilp64_full_static/openmpi-1.4.4/../configure 
>> --prefix=/home/ilias/bin/ompi-ilp64_full_static -without-memory-manager 
>> --without-libnuma --enable-static --disable-shared CXX=g++ CC=gcc 
>> F77=gfortran FC=gfortran FFLAGS="-m64 -fdefault-integer-8 -static" 
>> FCFLAGS="-m64 -fdefault-integer-8 -static" CFLAGS="-m64 -static" 
>> CXXFLAGS="-m64 -static"  LDFLAGS="-static  -Wl,-E" 
>> 
>> but still got dynamic, not static "mpirun":
>> ilias@194.160.135.47:~/bin/ompi-ilp64_full_static/bin/.ldd ./mpirun
>>      linux-vdso.so.1 =>  (0x00007fff6090c000)
>>      libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd7277cf000)
>>      libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fd7275b7000)
>>      libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fd7273b3000)
>>      libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd727131000)
>>      libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
>> (0x00007fd726f15000)
>>      libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd726b90000)
>>      /lib64/ld-linux-x86-64.so.2 (0x00007fd7279ef000)
>> 
>> Any help please ? config.log is here:
>> 
>> https://docs.google.com/open?id=0B8qBHKNhZAipNTNkMzUxZDEtNjJmZi00YzY3LWI4MmYtY2RkZDVkMjhiOTM1
>> 
>> Best, Miro
>> ------------------------------
>> Message: 10
>> Date: Tue, 24 Jan 2012 11:55:21 -0500
>> From: Jeff Squyres <jsquy...@cisco.com>
>> Subject: Re: [OMPI users] pure static "mpirun" launcher
>> To: Open MPI Users <us...@open-mpi.org>
>> Message-ID: <a86d3721-9bf8-4a7d-b745-32e606521...@cisco.com>
>> Content-Type: text/plain; charset=windows-1252
>> 
>> Ilias: Have you simply tried building Open MPI with flags that force static 
>> linking?  E.g., something like this:
>> 
>> ./configure --enable-static --disable-shared LDFLAGS=-Wl,-static
>> 
>> I.e., put in LDFLAGS whatever flags your compiler/linker needs to force 
>> static linking.  These LDFLAGS will be applied to all of Open MPI's 
>> executables, including mpirun.
>> 
>> 
>> On Jan 24, 2012, at 10:28 AM, Ralph Castain wrote:
>> 
>>> Good point! I'm traveling this week with limited resources, but will try to 
>>> address when able.
>>> 
>>> Sent from my iPad
>>> 
>>> On Jan 24, 2012, at 7:07 AM, Reuti <re...@staff.uni-marburg.de> wrote:
>>> 
>>>> Am 24.01.2012 um 15:49 schrieb Ralph Castain:
>>>> 
>>>>> I'm a little confused. Building procs static makes sense as libraries may 
>>>>> not be available on compute nodes. However, mpirun is only executed in 
>>>>> one place, usually the head node where it was built. So there is less 
>>>>> reason to build it purely static.
>>>>> 
>>>>> Are you trying to move mpirun somewhere? Or is it the daemons that mpirun 
>>>>> launches that are the real problem?
>>>> 
>>>> This depends: if you have a queuing system, the master node of a parallel 
>>>> job may be one of the slave nodes already where the jobscript runs. 
>>>> Nevertheless I have the nodes uniform, but I saw places where it wasn't 
>>>> the case.
>>>> 
>>>> An option would be to have a special queue, which will execute the 
>>>> jobscript always on the headnode (i.e. without generating any load) and 
>>>> use only non-local granted slots for mpirun. For this it might be necssary 
>>>> to have a high number of slots on the headnode for this queue, and request 
>>>> always one slot on this machine in addition to the necessary ones on the 
>>>> computing node.
>>>> 
>>>> -- Reuti
>>>> 
>>>> 
>>>>> Sent from my iPad
>>>>> 
>>>>> On Jan 24, 2012, at 5:54 AM, Ilias Miroslav <miroslav.il...@umb.sk> wrote:
>>>>> 
>>>>>> Dear experts,
>>>>>> 
>>>>>> following http://www.open-mpi.org/faq/?category=building#static-build I 
>>>>>> successfully build static OpenMPI library.
>>>>>> Using such prepared library I succeeded in building parallel static 
>>>>>> executable - dirac.x (ldd dirac.x-not a dynamic executable).
>>>>>> 
>>>>>> The problem remains, however,  with the mpirun (orterun) launcher.
>>>>>> While on the local machine, where I compiled both static OpenMPI & 
>>>>>> static dirac.x  I am able to launch parallel job
>>>>>> <OpenMPI_static>/mpirun -np 2 dirac.x ,
>>>>>> I can not lauch it elsewhere, because "mpirun" is dynamically linked, 
>>>>>> thus machine dependent:
>>>>>> 
>>>>>> ldd mpirun:
>>>>>>   linux-vdso.so.1 =>  (0x00007fff13792000)
>>>>>>   libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f40f8cab000)
>>>>>>   libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007f40f8a93000)
>>>>>>   libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f40f888f000)
>>>>>>   libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f40f860d000)
>>>>>>   libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
>>>>>> (0x00007f40f83f1000)
>>>>>>   libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f40f806c000)
>>>>>>   /lib64/ld-linux-x86-64.so.2 (0x00007f40f8ecb000)
>>>>>> 
>>>>>> Please how to I build "pure" static mpirun launcher, usable (in my case 
>>>>>> together with static dirac.x) also on other computers  ?
>>>>>> 
>>>>>> Thanks, Miro
>>>>>> 
>>>>>> --
>>>>>> RNDr. Miroslav Ilia?, PhD.
>>>>>> 
>>>>>> Katedra ch?mie
>>>>>> Fakulta pr?rodn?ch vied
>>>>>> Univerzita Mateja Bela
>>>>>> Tajovsk?ho 40
>>>>>> 97400 Bansk? Bystrica
>>>>>> tel: +421 48 446 7351
>>>>>> email : miroslav.il...@umb.sk
>>>>>> 
>>>>>> Department of Chemistry
>>>>>> Faculty of Natural Sciences
>>>>>> Matej Bel University
>>>>>> Tajovsk?ho 40
>>>>>> 97400 Banska Bystrica
>>>>>> Slovakia
>>>>>> tel: +421 48 446 7351
>>>>>> email :  miroslav.il...@umb.sk
>>>>>> 
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> us...@open-mpi.org
>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>> 
>>>>> _______________________________________________
>>>>> users mailing list
>>>>> us...@open-mpi.org
>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> users mailing list
>>>> us...@open-mpi.org
>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>> 
>>> _______________________________________________
>>> users mailing list
>>> us...@open-mpi.org
>>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> 
>> 
>> --
>> Jeff Squyres
>> jsquy...@cisco.com
>> For corporate legal information go to:
>> http://www.cisco.com/web/about/doing_business/legal/cri/
>> 
>> 
>> 
>> 
>> ------------------------------
>> 
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>> 
>> End of users Digest, Vol 2133, Issue 1
>> **************************************
>> 
>> _______________________________________________
>> users mailing list
>> us...@open-mpi.org
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
> 
> 
> -- 
> Jeff Squyres
> jsquy...@cisco.com
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
> 
> 
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to