No, our code is supposed to call MPI_init prior to any further MPI_* call.
Anyway, I finally found the reason for this error (sorry I spoiled the
list being unable to find my own mistakes...) and corrected our build
For different reasons, we generate a sequential and a parallel binary
(both linked with different openmpi libraries, the sequential one being
linked with a fake "mpi" library too that will redefine some methods
when running sequential) of this code.
I somehow managed to link the sequential binary as:
my_objects + the_fake_mpi_library + the openmpi libraries needed (cf.
what mpicc --show:link says) (the mpi compilers wrappers add necessary
flags as a postfix to the build command)
my_objects + the openmpi libraries needed (cf. what mpicc --show:link
As a consequence, when the "sequential" binary called MPI_init (assuming
it was the method redefined in the fake_mpi library), it was actually
calling the the MPI_init method from the openmpi library.
Thanks for your reactivity Jeff,
Jeff Squyres wrote:
> On Jul 23, 2008, at 8:33 AM, Eloi Gaudry wrote:
>> I've been encountering some issues with openmpi on a linux-ia64 platform
>> (centos-4.6 with gcc-4.3.1) within a call to MPI_Query_thread (in a fake
>> single process run):
>> An error occurred in MPI_Query_thread
>> *** before MPI was initialized
>> *** MPI_ERRORS_ARE_FATAL (goodbye)
> This error message usually means that you have invoked an MPI function
> call (e.g., MPI_Query_thread) before you invoked MPI_Init (or
> Is that what your code is doing?