LAM/MPI logo

LAM/MPI General User's Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2005-02-04 08:52:13


On Feb 3, 2005, at 11:27 AM, Fun Juncheng wrote:

> I am trying to run LAM across a network, one machine an Intel 32-bit,
> with LAM-7.1.1 installed. Another machine is an AMD 64-bit, with
> 64-bit LAM-7.1.1 installed. I have tried running MPI apps across the 2
> machines, on a properly lambooted LAM universe. Everything seems to
> run fine.

It'll work fine *unless* you try to send data of mismatched sizes --
LAM doesn't handle that, so if you do it, Bad Things will likely
happen.

> And I have checked that the mpicc has -laio, from "mpicc -showme", in
> fact, it is in there twice:
>
> /opt/SUNWspro/bin/cc -I/home/fjcsuper/lamMpi/include -mt -lthread
> -L/home/fjcsuper/lamMpi/lib -llamm
> pio -llamf77mpi -lmpi -llam -laio -laio -lsocket -lnsl -lthread
> -lthread -ldl

Ok.

> Anything else I need to make sure I have done right? Seems stuck now...

Did you check the 32 vs. 64 bit library issues? (see my original mail,
below)

> ---- Original Message ----- From: "Jeff Squyres" <jsquyres_at_[hidden]>
> To: "General LAM/MPI mailing list" <lam_at_[hidden]>
> Sent: Wednesday, January 26, 2005 2:16 PM
> Subject: Re: LAM: lamtests-7.1.1 make fail
>
>
>> So the problem appears to be that the aio library is either not being
>> found or is not linked in properly when you attempt to build MPI
>> executables that use MPI-2 IO function calls, which then results in
>> undefined symbols.
>>
>> There's two common causes for this that I can think of off the top of
>> my head:
>>
>> 1. The "mpicc" that you're using is not adding "-laio" properly. Can
>> you check the output of "mpicc -showme" and confirm that it's adding
>> "-laio"?
>>
>> 2. Solaris has a nasty habit of displaying misleading error messages
>> when you inadvertantly mix 32 and 64 bit entities when linking. For
>> example, if you're creating a 64 bit executable and you -lsomething,
>> where libsomething.a is a 32 bit library, the Solaris linker won't
>> tell you that you linked a 32 bit library and it ignored it -- it'll
>> just silently ignore libsomething.a and then complain about missing
>> symbols. So I'm wondering if you're seeing something like this here.
>>
>> Keep in mind that you'll need two separate installations of LAM --
>> one for 32 bit applications and one for 64 bit applications (and
>> therefore you'll have two different sets of wrapper compilers [mpicc
>> and friends]). So before you compile the lamtests, the easiest thing
>> to do is to set your $PATH to point to the LAM installation that you
>> want (and therefore the mpicc that you want) -- ensuring that you
>> compile lamtests in 32 bit mode with the 32 bit installation of LAM,
>> and compile lamtests in 64 bit mode with the 64 bit installation of
>> LAM.

-- 
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/