Boost logo

Boost-Build :

Subject: Re: [Boost-build] Mpi address model flag
From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2010-02-22 12:17:16


Hi,

On Feb 21, 2010, at 3:20 PM, Vladimir Prus wrote:

> On Thursday 18 February 2010 21:47:18 K. Noel Belcourt wrote:
>
>> On Feb 18, 2010, at 11:41 AM, Vladimir Prus wrote:
>>
>>> On Thursday 18 February 2010 20:16:55 K. Noel Belcourt wrote:
>>>
>>>> I'm trying to get the trunk Sun MPI tests working. Because I build
>>>> address-model-64 for Sun, I seem to need to invoke MPI with -m64 or
>>>> else I get library link errors because the missing -m64 causes
>>>> MPI to
>>>> return the 32 bit libraries. Is there a general way to make MPI
>>>> use
>>>> the address-model-64 flag from the toolset we build with? That is,
>>>> can MPI be made to run with the current address-model flag from
>>>> sun.jam? I don't see an easy way to do this without hard-coding
>>>> the
>>>> flag somewhere.
>>>
>>> Do you mean that the commands that return includes/libraries for MPI
>>> has to be passed the -m64 flag?
>>
>> Yes. Otherwise MPI will default to 32 bit and return 32 bit
>> libraries if -m64 is not passed.
>>
>>> Are you using 64-bit by specifying
>>> address-model=64 on the command line?
>>
>>
>> Here's the command line I run for the nightly tests.
>>
>> python run.py --proxy="http://wwwproxy.sandia.gov:80" --
>> runner="Sandia-sun" --bjam-toolset=sun --pjl-toolset=gcc --
>> toolsets=sun-5.10 --bjam-options="-j27 stdlib=sun-stlport address-
>> model=64"
>
> I see. It looks like this change might require actual coding. I'll
> work
> on that over next week and let you know when done.

That would be great.

A related MPI issue that I should point out (though I'm not asking
you to fix) is that we often build MPI optimized with specialized
options passed to MPI Autotools configure such as -fast or -pipe. We
then proceed to build our code, for example, in debug against this
particular MPI installation. The problem is that the -fast and -pipe
options are picked up from the MPI configuration and passed straight
through to the compile lines. Of course -fast is a valid compile
option but is counter productive when the user asks to build
variant=debug, and the -pipe option is not a valid compile option at
all. I'm just pointing this out so you can see some of the larger
MPI related issues we run into. Our only workaround for these
problems is to manually modify mpi.jam and extract essentially all
non-essential options, we leave -D -I -L -l options and various
flavors of -rpath, but we yank most everything else and throw it
away. Perhaps we need to enhance the MPI init rule to allow users to
pass in options to be removed from the MPI configuration options,
leaving all options not explicitly removed by the user? Anyways,
just wanted to point out this issue.

I do appreciate your help Volodya!

-- Noel


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk