PETSc in double-double and quad-double...

Jed Brown jed at 59A2.org
Wed Nov 4 14:21:33 CST 2009


Matthew Knepley wrote:
> On Wed, Nov 4, 2009 at 2:06 PM, Barry Smith <bsmith at mcs.anl.gov
> <mailto:bsmith at mcs.anl.gov>> wrote:
> 
> 
>       This is tricky because some C/C++ compilers long double uses 128
>     bits of space but actually (on Intel) only uses 80 of the bits
>     (those are the bits that floating point unit handles). So you do not
>     really get 128 bits. Also MPI may not properly handle the 128 bit
>     doubles.
> 
> 
> I figured that his types were just C++ types once he said they were
> provided by a package.

QD is honest quad-double (32 bytes, all of them significant)

  http://crd.lbl.gov/~dhbailey/mpdist/

They are C++ types with appropriate overloading, but the operations are
implemented in terms of conventional double-precision where as "long
double" is a different beast.

>       I am investigating qd now. Is there any MPI implementation that
>     uses qd? Do you need MPI?
> 
> 
> Can't we just make a type the correct number of bytes long?

I think so (on homogeneous hardware), but you have to create your own
version of each MPI_Op that does the right thing with this longer type.

Jed

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20091104/ffa96917/attachment.sig>


More information about the petsc-dev mailing list