Hi all,

I have a well working (large) code which is using openmpi 1.6.3 (see config.log here: http://www.giref.ulaval.ca/~ericc/bug_openmpi/config.log_nodebug)

(I have used it for reading with MPI I/O with success over 1500 procs with very large files)

However, when I use openmpi compiled with "debug" options:

./configure --enable-mem-debug --enable-mem-profile --enable-memchecker --with-mpi-param-check --enable-debug --prefix=/opt/openmpi-1.6.3_debug (se other config.log here: http://www.giref.ulaval.ca/~ericc/bug_openmpi/config.log_debug) the code is aborting with an assertion on a very small example on 2 processors. (the same very small example is working well without the debug mode)

Here is the assertion causing an abort:

===================================

openmpi-1.6.3/opal/datatype/opal_datatype.h:

static inline int32_t
opal_datatype_is_contiguous_memory_layout( const opal_datatype_t* datatype, int32_t count )
{
    if( !(datatype->flags & OPAL_DATATYPE_FLAG_CONTIGUOUS) ) return 0;
if( (count == 1) || (datatype->flags & OPAL_DATATYPE_FLAG_NO_GAPS) ) return 1;


/* This is the assertion:  */

assert( (OPAL_PTRDIFF_TYPE)datatype->size != (datatype->ub - datatype->lb) );

    return 0;
}

===================================

Does anyone can tell me what does this mean?

It happens while writing a file with MPI I/O when I am calling for the fourth time a "MPI_File_set_view"... with different types of MPI_Datatype created with "MPI_Type_indexed".

I am trying to reproduce the bug with a very small example to be send here, but if anyone has a hint to give me...
(I would like: this assert is not good! just ignore it ;-) )

Thanks,

Eric

Reply via email to