|Name:||Numerical Reproducibility in Exascale Computing|
|Time:||Thursday, June 20, 2013
9:40 AM - 10:00 AM
CCL - Congress Center Leipzig
|Speakers:||David H. Bailey, LBNL|
|Abstract:||The rapidly growing scale of modern scientific computing is exacerbating issues of numerical reproducibility. A computation running on 4096 CPUs, for instance, may give significantly different numerical answers than the same program running on 8192 CPUs. Similar differences are often seen when a code is ported to another system, or even when minor changes are made to the source code. Often it is hard to tell whether or not "bugs" have been introduced in the process, since baseline calculations cannot be precisely reproduced. Some non-reproducibility is to be expected is certain classes of chaotic applications, but often it is worse than necessary, due to numerical limitations. Even on a single CPU, some rather innocuous-looking calculations can give wildly different results, because of highly ill-conditioned underlying systems. To date such issues have mostly been a minor annoyance, but there is every indication that such difficulties will significantly worsen in the future.
The speaker will describe several types of scientific computations where these difficulties are seen, together with how they have been handled using one of a variety of software solutions. In many cases, remedies are available, notably the usage of double-double (30-digit) or quad-double (60-digit) arithmetic in certain key loops and subroutines, using software tools that make such modifications a relatively easy task. These remedies do increase run time, but in many applications the increase is just a few percent. The speaker will also present some examples where much more than just 32-digit or 64-digit arithmetic is required, and how calculations at such levels of precision can be programmed and managed.