Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] Reduce with XOR with MPI_Double
From: Richard Treumann (treumann_at_[hidden])
Date: 2009-04-21 08:54:37


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_at_[hidden] 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_at_[hidden]
>
> 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_at_[hidden]>
> > 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_at_[hidden]
> > http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> Cisco Systems
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users