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

Todd Munson tmunson at mcs.anl.gov
Wed Nov 4 14:24:56 CST 2009


If we can do qd_real, we could also try using the arprec package and get 
arbitrary precision math.  I might be interested in that as well...

All are written as C++ types with operator overloading...

Cheers, Todd.

On Wed, 4 Nov 2009, Jed Brown 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/
>
> 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
>
>



More information about the petsc-dev mailing list