[MPICH] Re: [mvapich-discuss] Fatal error in MPI_Allreduce

Anthony Chan chan at mcs.anl.gov
Fri Nov 30 12:47:45 CST 2007


http://softwarecommunity.intel.com/isn/Community/en-US/forums/thread/30237719.aspx

A.Chan

On Fri, 30 Nov 2007, Rajeev Thakur wrote:

> This is caused by a bug in the Intel 10.0 compiler. It cannot handle case
> statements of the form below. It needs a "return MPI_SUCCESS" after each
> case statement. You can fix it in your code by editing
> src/mpi/coll/opminloc.c and adding "return MPI_SUCCESS" after each of the
> case statements below.
>
> Rajeev
>
>
>
> int MPIR_MINLOC_check_dtype( MPI_Datatype type )
> {
>    static const char FCNAME[] = "MPIR_MINLOC_check_dtype";
>
>    switch (type) {
>    /* first the C types */
>    case MPI_2INT:
>    case MPI_FLOAT_INT:
>    case MPI_LONG_INT:
>    case MPI_SHORT_INT:
>    case MPI_DOUBLE_INT:
> #if defined(HAVE_LONG_DOUBLE)
>    case MPI_LONG_DOUBLE_INT:
> #endif
>   /* now the Fortran types */
> #ifdef HAVE_FORTRAN_BINDING
> #ifndef HAVE_NO_FORTRAN_MPI_TYPES_IN_C
>    case MPI_2INTEGER:
>    case MPI_2REAL:
>    case MPI_2DOUBLE_PRECISION:
> #endif
> #endif
>        return MPI_SUCCESS;
>        /* --BEGIN ERROR HANDLING-- */
>    default:
>        return MPIR_Err_create_code( MPI_SUCCESS, MPIR_ERR_RECOVERABLE,
> FCNAME, __LINE__, M
> PI_ERR_OP, "**opundefined","**opundefined %s", "MPI_MINLOC" );
>        /* --END ERROR HANDLING-- */
>    }
> }
>
>
>> -----Original Message-----
>> From: owner-mpich-discuss at mcs.anl.gov
>> [mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of amith
>> rajith mamidala
>> Sent: Friday, November 30, 2007 11:57 AM
>> To: Christian Guggenberger
>> Cc: mvapich-discuss at cse.ohio-state.edu; mpich-discuss at mcs.anl.gov
>> Subject: [MPICH] Re: [mvapich-discuss] Fatal error in MPI_Allreduce
>>
>> Hi Christian,
>>
>> We are not very sure about the exact reason why Intel 10.0
>> compiler causes the miscompilation. However, the source of
>> the problem could be not defining the fortran bindings
>> properly. You can take a look at the file:
>> trunk/src/mpi/coll/opminloc.c which causes this error to occur.
>> I would suggest to contact the mpich team to see if this is a
>> known error.
>>
>> Thanks,
>>
>> Amith.
>>
>> On Thu, 29 Nov 2007, Christian Guggenberger wrote:
>>
>>> Hi,
>>>
>>> attach is a small piece of Fortran code, which crashes with
>>>
>>> Fatal error in MPI_Allreduce: Invalid MPI_Op, error stack:
>>> MPI_Allreduce(707)..........: MPI_Allreduce(sbuf=0x610be0,
>>> rbuf=0x610c40, count=5, MPI_2DOUBLE_PRECISION, MPI_MINLOC,
>>> MPI_COMM_WORLD) failed
>>> MPIR_MINLOC_check_dtype(215): MPI_Op MPI_MINLOC operation
>> not defined
>>> for this datatype
>>>
>>> as soon as it is compiled/linked with a MPI library (both
>> mpich2 and
>>> mvapich2), which was compiled with Intel C/C++ 10.0.026 and/or
>>> 10.1.008 on Linux
>>> x86_64 machines.
>>>
>>> Intel 9.1, GNU or mixtures of GNU C/C++ and Lahey/Fujitsu
>> Fortran work
>>> well.
>>>
>>> My question - is anyone aware of miscompilation(s) of
>> mpich2/mvapich2
>>> caused by Intel C/C++ 10.0 and 10.1 ?
>>>
>>> thanks a lot,
>>>
>>>  - Christian
>>>
>>
>>
>
>




More information about the mpich-discuss mailing list