# Higher precision floating-point arithmetic in numerical PDE

I have the impression, from very different resources and talks with researches, that there is a growing demand for high precision computations in numerical partial differential equations. Here, high precision means more precision than just the standard 64bit double precision.

I wonder about the state of the art of this topic. By way of comparision, there are communitites in numerical PDE which specifically target, e.g., multicore methods, large-scale parallelization or GPU-computing. I wonder whether a similar community is exists or is growing for high precision methods in numerical PDE, and I would be particulary interested (and this is the actual point of the question) in introductory or survey papers on high precision, which also provide an impression of the actual relevance of the topic.

Discretization of the continuum PDEs usually commits much more error than the finite precision. I find that about 90% of the people requesting higher precision have just been lazy with problem formulation and are trying to solve a problem using poor scaling, bad discretizations, or bad continuum modeling. The remaining 10% may have justifiably ill-conditioned systems for which increased precision really makes sense. Even in those cases, we mostly use quad precision as a debugging tool (especially in conjunction with methods using finite differenced Frechet derivatives, and to investigate the cause of "spurious" numerical null spaces) or locally for a very sensitive operation rather than in the large scale for production.

GCC has provided __float128 since version 4.6, so it's very easy to try. (Earlier implementations were generally much more intrusive and less portable.) PETSc has supported --with-precision=__float128 since version 3.2 so it's just a matter of recompiling.

• Right. And Fortran has real(dp) where one can set dp=16 (for gfortran) to get quad precision, so it's also very easy to try. – Ondřej Čertík Aug 24 '12 at 18:01

In the 15 years that we have provided FEM software in the form of the deal.II project (http://www.dealii.org/), I don't think that we've ever had a genuine request to solve PDEs to higher accuracy than double precision. The reason is as Jed suggests in the other answer: The error one makes discretizing the PDE is much larger than the 16 digits of accuracy one gets from double precision floating point arithmetic. Thus, you'd have to have an incredibly fine mesh to get to the point where you need more accuracy in the arithmetic to affect the overall error.

I think that actually the opposite is true: People are thinking about (and working on) what happens when you, for example, use single precision to store the elements of the matrix or of preconditioners. In general, this does not significantly reduce their accuracy, but it increases performance by roughly a factor of two because you need to be only half as much data from memory into the processor.

So, my sense is that quad precision (or even higher) is something that may be relevant to the ODE solver community but not to the PDE community.