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

Matthew Knepley knepley at gmail.com
Wed Nov 4 14:27:29 CST 2009


On Wed, Nov 4, 2009 at 2:21 PM, Jed Brown <jed at 59a2.org> wrote:

> 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/<http://crd.lbl.gov/%7Edhbailey/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.
>

Okay, then this should be no harder than complex.


> >       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.
>

Yep, we do that now for several things in PETSc.

  Matt


> Jed
>
>


-- 
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20091104/74a5998e/attachment.html>


More information about the petsc-dev mailing list