- Why did you do this ?
- How does your record compares to the previous one ?
- Is your result consistent with the previously published computations ?
- Where can I download all the computed Pi digits ?
- Do you plan to go further ?
- Is the program used to establish the Pi computation record publically available ?
- Will you release the source code ?
- Why didn't you use a GPU (Graphics Processing Unit) ?
- Which book should I read to learn arbitrary-precision arithmetic ?
- Who are you ?

Arbitrary-precision arithmetic with huge numbers has little practical use, but some of the involved algorithms are interesting to do other things. In particular:

- The Discrete Fourier Transform. This transform is widely used in many algorithms and most modern electronic appliances (such as digital televisions, cell phones and music players) include at least one instance of it.
- The reliable managing of a very large amount of disk storage, at least for a single computer. Specific methods were developed to ensure high reliability and high disk I/O bandwidth. The same ideas can be applied to other fields such as video streaming or data base access.
- The whole computation is an extensive test for a computer including its CPU, RAM, disk storage and cooling system. A single bit error during the computation gives a bad result. A bad cooling results in a hardware failure.

My computation used a single Core i7 Quad Core CPU at 2.93 GHz giving a peak processing power of 46.9 Gflops. So the supercomputer is about 2000 times faster than my computer. However, my computation lasted 116 days, which is 96 times slower than the supercomputer for about the same number of digits. So my computation is roughly 20 times more efficient. It can be explained by the following facts:

- The Pi computation is I/O bound, so it needs very high communication speed between the nodes on a parallel supercomputer. So the full power of the supercomputer cannot really be used.
- The algorithm I used (Chudnovsky series evaluated using the binary splitting algorithm) is asymptotically slower than the Arithmetic-Geometric Mean algorithm used by Daisuke Takahashi, but it makes a more efficient use of the various CPU caches, so in practice it can be faster. Moreover, some mathematical tricks were used to speed up the binary splitting.

*Modern Computer Arithmetic*by Richard Brent and Paul Zimmermann, version 0.4, November 2009, Full text available here.*The Art of Computer Programming, volume 2 : Seminumerical Algorithms*by Donald E. Knuth, Addison-Wesley, third edition, 1998. More information here.

Back to Home