Santolo

The MPI standard defines reduction operations where the operand/operation pair has a meaningful semantic. I cannot picture a well defined semantic for:
9999999999999999999.0 BXOR 0.0000000000000000009. Maybe you can but it is not an error that the MPI standard leaves out BXOR on floating point operands. That means you are not going to "Fix" it.

With more than one floating point representation in use by various machines, the result of:

printf("%f\n", 9999999999999999999.0 BXOR 0.0000000000000000009)

could be vastly different from machine to machine (pseudo code obviously - BXOR is not a C operator)

If you agree that BXOR on floating point data has no well defined or portable meaning and you still have a need for it in your application on your hardware then you can try cheating. Use MPI_Reduce but tell it the data is an integer type. Libmpi will apply the bitwise XOR to the bytes you have pretended are integer and if you get the result you want you may have solved your problem.

Just understand that because what you are wanting to do has no defined meaning you cannot assume portability. You also cannot assume results that match your expectations unless you fully understand the floating point representations and fully understand your own goals. EG 99999.8 BXOR 99999.9 may give you what you expect while 22222.2 BXOR 22222.3 does not.

Dick

Dick Treumann - MPI Team
IBM Systems & Technology Group
Dept X2ZA / MS P963 -- 2455 South Road -- Poughkeepsie, NY 12601
Tele (845) 433-7846 Fax (845) 433-8363


users-bounces@open-mpi.org wrote on 04/21/2009 08:26:27 AM:

> [image removed]

>
> Re: [OMPI users] Reduce with XOR with MPI_Double

>
> Jeff Squyres

>
> to:

>
> Open MPI Users

>
> 04/21/2009 08:27 AM

>
> Sent by:

>
> users-bounces@open-mpi.org

>
> Please respond to Open MPI Users

>
> I'm not quite sure what you're asking.  MPI_BXOR is valid on a variety  
> of Fortran and C integer types; see MPI-2.1 p162 for the full table.
>
>      http://www.mpi-forum.org/docs/mpi21-report.pdf
>
>
>
> On Apr 19, 2009, at 3:46 PM, Santolo Felaco wrote:
>
> >  I mean the bitwise xor. Pardon for standard the operation is valid  
> > only integer dates.
> > Bye.
> >
> > 2009/4/19 Santolo Felaco <ahuramazda10@gmail.com>
> > Hi,
> > I want to use the xor operation of reduce with double dates. For MPI  
> > standars the operation is valid only MPI_Char dates.
> > How can I fix this?
> >
> > Thanks. Bye
> >
> >
> > _______________________________________________
> > users mailing list
> > users@open-mpi.org
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> users mailing list
> users@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users