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

Kai Germaschewski kai.germaschewski at unh.edu
Fri Jan 8 22:53:35 CST 2010


gmp is part of macports, so it's as easy as "port install gmp" here.

If you want to put it into petsc's build system, looking at the macports
portfile / patches will probably reveal what's necessary to "port" it.

--Kai


On Fri, Jan 8, 2010 at 9:56 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

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


-- 
Kai Germaschewski
Assistant Professor, Dept of Physics / Space Science Center
University of New Hampshire, Durham, NH 03824
office: Morse Hall 245F
phone:  +1-603-862-2912
fax: +1-603-862-2771
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20100108/810018f8/attachment.html>


More information about the petsc-dev mailing list