[petsc-dev] PETSc in double-double and quad-double...

Barry Smith bsmith at mcs.anl.gov
Fri Jan 8 20:56:30 CST 2010


   I'm giving up on this for now. Building BlasLapack from the f or  
f2c source code of BlasLapack with qd is hopeless. So one could use  
mpack, but mpack requires gmp to build, but I am unable to build gmp  
on my Mac because it is not as portable as it is suppose to be.

    There is a config/PETSc/packages/qd.py gmp.py and mpack.py if  
anyone wants to see if they can get the pieces built. Note: you will  
need to get the tarballs yourself, they are not on the website. If you  
hack MPACK to get things running then please do it in an hg  
repository. You might be able to hack mpack so it does not need gmp to  
build but .....

    Cool idea but I am so pissed at bullshit non-portable code that  
pretends to be portable I'm giving up!


    Barry

On Nov 4, 2009, at 2:27 PM, Matthew Knepley wrote:

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




More information about the petsc-dev mailing list