Boost logo

Boost Users :

Subject: [Boost-users] [MPI] MPI auto-detection failed: unknown wrapper compiler...
From: Ilja Honkonen (ilja.honkonen_at_[hidden])
Date: 2010-04-12 02:14:22


Hello

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++

(mpic++
-bash: mpic++: command not found)

If I understand correctly boost only checks for mpicc and related
executables and also tries mpirun. None of these are supposed to be used
on an XT5. The compiler commands to use are cc, CC and ftn. More
information for I think the same machine:
http://www.csc.fi/english/pages/louhi_guide/program_development/compilers/index_html

This is how I'd run the test program from boost homepage
Compile:
cat > mpitesti.cpp << EOF
#include <mpi.h>
#include <iostream>

int main(int argc, char* argv[])
{
   MPI_Init(&argc, &argv);

   int rank;
   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
   if (rank == 0) {
     int value = 17;
     int result = MPI_Send(&value, 1, MPI_INT, 1, 0, MPI_COMM_WORLD);
     if (result == MPI_SUCCESS)
       std::cout << "Rank 0 OK!" << std::endl;
   } else if (rank == 1) {
     int value;
     int result = MPI_Recv(&value, 1, MPI_INT, 0, 0, MPI_COMM_WORLD,
               MPI_STATUS_IGNORE);
     if (result == MPI_SUCCESS && value == 17)
       std::cout << "Rank 1 OK!" << std::endl;
   }
   MPI_Finalize();
   return 0;
}
EOF

CC mpitesti.cpp -o mpitesti
/opt/cray/xt-asyncpe/3.3/bin/CC: INFO: linux target is being used

Then submit a job:
cat > mpitesti.job << EOF
#!/bin/sh
#PBS -N mpitesti
#PBS -l mppwidth=2
#PBS -l mppnppn=1
#PBS -j oe
#PBS -l walltime=00:00:10
cd \$PBS_O_WORKDIR
aprun -n 2 -N 1 -cc cpu ./mpitesti
EOF

qsub mpitesti.job
58665.sdb

And after a few seconds:
cat mpitesti.o58661
Rank 0 OK!
Rank 1 OK!
Application 125625 resources: utime 0, stime 0

Actually CC can be one of four different compilers depending on which
PrgEnv module I've chosen:

CC -V
/opt/cray/xt-asyncpe/3.3/bin/CC: INFO: native target is being used

pgCC 9.0-4 64-bit target on x86-64 Linux -tp k8-64e
Copyright 1989-2000, The Portland Group, Inc. All Rights Reserved.
Copyright 2000-2009, STMicroelectronics, Inc. All Rights Reserved.

module switch PrgEnv-pgi PrgEnv-gnu

CC --version
/opt/cray/xt-asyncpe/3.3/bin/CC: INFO: linux target is being used
g++ (GCC) 4.3.3 20090124 (rpm:2)
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

etc.

I'd also like to use CC (and not necessarily g++) for compiling boost
and not just its mpi bindings, how can I make bjam do that?
Any other information you might need?

Thanks
Ilja Honkonen


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