Boost logo

Boost Users :

Subject: Re: [Boost-users] [MPI] MPI auto-detection failed: unknown wrapper compiler...
From: Belcourt, Kenneth (kbelco_at_[hidden])
Date: 2010-04-12 13:15:24


Hi Ilja,

On Apr 12, 2010, at 12:14 AM, Ilja Honkonen wrote:

> I'm trying to install boost and its MPI bindings on a Cray XT5 and
> this
> is what I get after adding using mpi ; to user-config.jam:
> MPI auto-detection failed: unknown wrapper compiler
> /opt/cray/xt-asyncpe/3.3/bin/CC
> or
> MPI auto-detection failed: unknown wrapper compiler mpic++

It takes a fair bit of work to get XT working with Boost.Build.
Here's a few pointers.

In our user-config.jam we have this description.

using pgi
   : 10.1.xt
   : CC cc ftn
   : <cflags>"-Utflops -B -Knoieee -Mnosecond_underscore"
     <cxxflags>"-DMPICH_IGNORE_CXX_SEEK -Utflops -Knoieee -
Mnosecond_underscore"
     <find-shared-library>"std -lm -ldl"
     <find-static-library>"pgf90 -lpgf90_rpm1 -lpgf902 -lpgf90rtl -
lpgftnrtl"
   ;

Notice that we pass the Fortran, C and C++ compilers down into the Pgi
toolset initialization function. I've also attached our pgi.jam so
you can see how we process the various toolset compilers. Notice that
you'll need to make some modifications to mpi.jam to handle the XT
style MPI compiler wrappers. Here's a block we added to mpi.jam to do
this for XT.

     else if [ safe-shell-command "$(command) -target=linux -show -
c" ] && ! [ safe-shell-command "$(command) -compile_info" ]
     {
       if $(.debug-configuration)
       {
         ECHO "Found Pgi XT MPI wrapper compiler: $(command)" ;
       }
       compile_flags = [ SHELL "env PATH=`pwd`/boost/tools/build/v2/
tools:$PATH $(command) -c" ] ;
       compile_flags = [ strip-eol $(compile_flags) ] ;
       link_flags = [ SHELL "env PATH=`pwd`/boost/tools/build/v2/tools:
$PATH $(command) -show " ] ;

       # remove -show from the compile and link flags, if present
       front_dashc = [ MATCH "(.*)-show " : $(link_flags) ] ;
       if $(front_dashc) {
           back_dashc = [ MATCH " -show(.*)" : $(link_flags) ] ;
           link_flags = "$(back_dashc)" ;
       }
     }

Also note that we had to add a new architecture (cray) and target
(catamount) and a few other modifications to get things going but I
can't recall them all at the moment. We have to invoke bjam with:

        architecture=cray target=catamount instruction-set=opteron pgi-10.1.xt

Hope that helps!

-- Noel




Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net