|
Boost Users : |
Subject: Re: [Boost-users] [MPI] MPI auto-detection failed: unknown wrapper compiler...
From: Matthias Troyer (troyer_at_[hidden])
Date: 2010-04-13 10:06:03
On 12 Apr 2010, at 08:14, Ilja Honkonen wrote:
> 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?
Hi Ilja,
We did not bother with Boost.Build but build Boost and Boost.MPI using our own CMake build files on an XT5.
Matthias
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