
Calculating a record-breaking 31.4T digits of Pi with GCP - ossama
https://cloud.google.com/blog/products/compute/calculating-31-4-trillion-digits-of-archimedes-constant-on-google-cloud
======
aaaaaaaaaaab
Meh, throwing raw power at the problem is not that impressive.

Bellard's [1] 2009 record was much more impressive, because he used a clever
formula to break the existing record with a mere (albeit beefy) desktop
computer: [https://bellard.org/pi/pi2700e9/](https://bellard.org/pi/pi2700e9/)

The record he broke with his desktop PC was made using a supercomputer
cluster.

[1] If somebody is not familiar with him, he is also the original author of
QEMU, ffmpeg and the Tiny C Compiler.

~~~
ousta
I struggle to see any complexity into google approach - unlike bellard's one
that is an amazing feat.

They basically pulled more machine to compute more. nothing really impressive.
pretty much any dev with that computing power could have done it

~~~
web007
It's fairly impressive.

Keeping a single server online for 111 days straight at full CPU and RAM usage
over 96 cores and 1.4TB of RAM is a good start. The fact that such a machine
exists is already mind-blowing. Then add 25 more nodes running iSCSI, all out
24/7 for 111 days. Hell, just mounting 240TB on a single system is a good
stunt, go ahead and try it and let me know it's not "complex".

And your last point kind of IS the point of their marketing: any dev could do
it if they have the skill, and they'll rent you the hardware.

~~~
onlydeadheroes
While those are interesting systems administration tasks, I believe the point
is that the previous record was held by someone who used smarter maths (than
the previous previous record) and vastly fewer computing resources.

------
smarx007
How Many Decimals of Pi Do We Really Need? (NASA/JPL):
[https://www.jpl.nasa.gov/edu/news/2016/3/16/how-many-
decimal...](https://www.jpl.nasa.gov/edu/news/2016/3/16/how-many-decimals-of-
pi-do-we-really-need/)

~~~
StreakyCobra
In short 40 is already crazy too many digits for most if not all applications.
Yet in the original article they say «Granted, most scientific applications
don’t need π beyond a few hundred digits, …». Is there scientific applications
where they would really need more than 40? Or is it just the author making
some guess?

~~~
bostonpete
The linked NASA article points out that with 40 digits of pi you could compute
the circumference of the visible universe to an accuracy equal to the diameter
of a hydrogen atom. I'm gonna say there's no practical application that would
require even 40 digits, never mind a few hundred

~~~
rlanday
You need more digits than that to accurately compute double-precision
trigonometric functions (if the input is close to pi, you need enough accurate
digits left after performing range reduction).

This paper claims you need 2/pi accurate to 1144 bits which is about 345
decimal digits: [https://www.csee.umbc.edu/~phatak/645/supl/Ng-
ArgReduction.p...](https://www.csee.umbc.edu/~phatak/645/supl/Ng-
ArgReduction.pdf)

~~~
ectospheno
As a counterpoint, no real computation I've performed on a computer needed to
compute the cos of 2^1023 radians. I can't imagine such a scenario either.

~~~
rlanday
You can either implement the functions accurately or inaccurately.
Implementing them inaccurately is a slippery slope. Intel botched the hardware
implementations in their processors not only for large inputs but also for
inputs nearish to multiples of pi:

[http://notabs.org/fpuaccuracy/index.htm](http://notabs.org/fpuaccuracy/index.htm)

------
angrygoat
Alexander Yee's writeup is interesting – CPU utilisation was only about 12%,
they encountered quite nasty I/O bottlenecks (particularly for writes.)

[http://www.numberworld.org/blogs/2019_3_14_pi_record/](http://www.numberworld.org/blogs/2019_3_14_pi_record/)

Contradicts the Google blog a little, especially where he points out that they
hit performance issues with live migration (Google said it worked fine without
impact on the application.)

~~~
bluedino
He's also the author of one of the most famous Stack Overflow answers of all
time, 'Why is it faster to process a sorted array than an unsorted array?'

[https://stackoverflow.com/a/11227902/1760335](https://stackoverflow.com/a/11227902/1760335)

------
s_gourichon
This is a time someone must cite 3Blue1Brown: [(183) The most unexpected
answer to a counting puzzle -
YouTube]([https://www.youtube.com/watch?v=HEfHFsfGXjs](https://www.youtube.com/watch?v=HEfHFsfGXjs))

------
philshem
The piano music for each digit at the A-π (API) page is particularly beautiful

[https://pi.delivery/#demosmusic](https://pi.delivery/#demosmusic)

~~~
nothanksmydude
Similar, but metal. This is the extended verison that goes to 110 digits.

"The numbers and rests in the formula translate to 16th notes on the kick
drum, and 16th note rests. There is no kick drum beats where there are snare
drums.

With the decimal point BEFORE the number, and starting with the first number,
move that many decimal points to the right and insert that many 16th note
rests. Use one 16th note rest to divide the numbers you passed (when
applicable). Continue on throughout the rest of the figure. No repeats."

The details of the video have the full explanation

[https://www.youtube.com/watch?v=uh-
EdSbfdrA](https://www.youtube.com/watch?v=uh-EdSbfdrA)

------
geekuillaume
I'm curious, did someone estimate how much it would cost to replicate this
experiment on GCloud with the same infrastructure?

~~~
triodan
Using GCP's pricing calculator and the specs described in the blog, it's
around 170,000 USD to run it for 3 months.

[https://cloud.google.com/products/calculator/#id=ef2329f6-f1...](https://cloud.google.com/products/calculator/#id=ef2329f6-f194-4179-bedb-5640a9fc722c)

~~~
yjftsjthsd-h
If you can break it into appropriate jobs that can handle interruptions, you
should use interruptible instances to save money. And you really need to be
able to handle that anyway in case an instance fails midway.

------
fhoffa
Don't miss the video on how Emma did this:

\-
[https://www.youtube.com/watch?v=JvEvTcXF-4Q](https://www.youtube.com/watch?v=JvEvTcXF-4Q)

(length 3:14)

------
zimbatm
this is perfect for mounting the Pi filesystem :)

[https://github.com/philipl/pifs](https://github.com/philipl/pifs)

------
sverige
Whenever I see the ridiculous number of places to which pi has been
calculated, I wonder if anyone has checked to see if there is a repeating
pattern. I mean, 31 trillion places leaves a lot of possibilities for
repetition of a couple of billion digits.

Or is my understanding of what constitutes an irrational number outdated? Is
there another definition that precludes even looking for repetition in hopes
of finding a denominator?

~~~
DannyB2
Not consecutively repeating patterns.

But if you take any length pattern of digits, it would repeat an infinite
number of times.

Let's take a one digit pattern, say '5'. Since the digits of pi continue
forever, there would be an infinite number of '5's.

Now consider a longer pattern '53'. Since the digits of pi continue forever,
there would be an infinite number of '53's. In fact, each 53 will be from one
of the infinite number of '5's in the previous pattern '5'.

Now consider a longer pattern '537' . . .

. . . to continue . . .

It was long ago when I read Contact (the book), so I hope I don't misremember
this too badly. At the end of the book the main character was given a budget,
lab, resources, etc. They were working on looking for a message in the digits
of Pi. Eventually her beeper beeped and they had found one! It must be woven
into the fabric of the universe.

I think any sequence of digits that had any kind of message you are going to
eventually find in Pi. Just like, if you look long enough you'll find a 5. If
you keep looking you'll eventually find a 53. Keep looking, you'll eventually
find a 537. Etc.

~~~
wool_gather
This is the concept of [a "normal" number][0] (which is a strange choice of
word, I think). Apparently pi is not proven to be normal. But the implication
as I understand is that, yes, any given sequence that you'd care to look for
is there somewhere.

[0]:[https://en.wikipedia.org/wiki/Normal_number](https://en.wikipedia.org/wiki/Normal_number)

~~~
stephencanon
Almost all numbers are normal, so it seems like a perfectly reasonable choice
of terminology =)

[On the other hand, almost none of the numbers someone on the street might
name are normal, so ...]

~~~
wool_gather
Ah, I didn't realize that, thanks! That makes sense now that you say it.

~~~
stephencanon
Almost all real numbers are a lot of things, though:

    
    
       - uncomputable
       - irrational
       - transcendental
       - ...
    

So it's not really _that_ good of a justification. =)

------
CRUDite
Perhaps they subliminally hope the final pages of the novel "contact" to be
real

------
maxst
Are the some PI-like constants, but much harder to calculate? Like even a
million digits would be hard to calculate?

~~~
StrangeDoctor
That's actually most numbers, but we don't know any yet.
[https://youtu.be/5TkIe60y2GI](https://youtu.be/5TkIe60y2GI) numberphile (math
YouTube series) describing some related concepts here.

------
anth_anm
"we have lots of compute resources and access to software, aren't we awesome?"

------
sigi45
Awesome, now we are a game of life which has generated Pi to 31.4T digits at
least once :D

------
atomical
What is the file size?

------
hokobomo
> March 14 (represented as 3/14 in many parts of the world)

haha

~~~
StreakyCobra
I wanted to comment the same part, but I wanted to let them the benefit of the
doubt, so I went to Wikipedia «date format by country» page [1], and summed up
from the table how many people have "MD" vs "DM" in their date format:

DM -> 3392/5550 ~= 61.1% MD -> 2158/5550 ~= 38.9%

Note: I ignored both green and red regions that have both "DM" and "MD" in
their format.

So it is definitively not the majority of people. Using the word "some"
instead would have been better, but "Many" is not totally wrong… I guess.

[1]
[https://en.wikipedia.org/wiki/Date_format_by_country#Usage_m...](https://en.wikipedia.org/wiki/Date_format_by_country#Usage_map)

~~~
klohto
But that is population not a number of countries. If you look at it from a
country perspective, the percentage is tiny.

~~~
StreakyCobra
Probably. The statement talk about "parts of the world", and this concept of
"parts" can be seen as countries, continents, surface of earth, atoms, etc. I
chose to reduce it to the smallest meaningful entity concerning the concept of
dates: humans. It is arbitrary, but justifiable :)

------
patrickg_zill
How can you tell if the results are accurate?

~~~
curiousgal
Why would you need to do that? It's not like those digits are useful for
anything at all.

~~~
onion2k
I guess it depends on your definition of "useful", but one potential way to
use pi would be as a way to transmit compressed data _incredibly_ efficiently.
If you could find the data you want to transmit in pi somewhere you'd only
need to transmit an offset and a length to send anything than can be
represented numerically.

The hard part would be finding what you want to send though...

;)

~~~
mkup
Offset and a length in Pi are not going to be shorter than original data to
transmit.

~~~
thaumaturgy
Not necessarily. A double gets you pretty far into pi for a cost of just 8
bytes. A little bit of rounding, or checksumming, or other tomfoolery in
principle should make it possible to reach absurdly far into pi for a byte or
two more.

~~~
jerf
Given that I personally have to have seen this proposal at least a dozen times
myself, and I'm not even particularly "in the field", if it was as easy as
people supposed, we'd be using it.

I will point out you're thinking of it incorrectly, though. The challenge with
compression isn't to "reach far into pi". The challenge is to reach
_correctly_ into pi. A double can identify 2^64 places to reach into pi. It
doesn't really matter how you specify those 2^64 locations, that's all it can
do, by the simple argument that one double can't specify more than one
location.

The location of the US Constitution in pi may be "far", but it's not the "far"
we have in our fuzzy human brains where things sort of logarithmically just
pile together until there's no meaningful difference to us humans between the
1,839,837,237,938,739,837,954th position of pi and the
1,839,827,237,938,739,837,954th position. But a compression algorithm off by
that much is useless; indeed, even being off by one digit (in your choice of
base) is going to produce garbage. So it's not just about being able to reach
"far", it's about being able to reach far and _precisely_. It doesn't matter
how you arrange the possible 2^64 locations a machine word can point to;
specify it as 1,739,837,237,938,739,837,954 + the binary as a 64-bit int for
all it matters. That reaches "far" into pi. But you won't find anything useful
enough to pay off the 64bits you spent getting there.

(I mean, you want to reach _far_ into Pi, I give you "Go BusyBeaver(64-bit
int) digits into Pi". That's reaching in pretty darned far. But it's still
useless as a compression algorithm, even with the mighty power of BusyBeaver
there.)

(Amusingly, at BB(42) digits into Pi, you get "42" as the next digits, proving
that 42 really is the answer. Prove me wrong!)

~~~
thaumaturgy
I would expect that about zero of the propositions have ever been serious.
It's just a well-known, long-running amusement among programmers.

An IEEE 754 double type has a range from about 10^−324 to about 10^308. You
start losing precision once you exceed 2^51, but beyond that it should be
possible to add an extra byte or a few as an offset.

So a handful of bytes would get us addresses far in excess of the current
storage capacity of the internet (estimated around 10^24 bytes a few years
ago) ... if only pi were certain to contain every possible number sequence up
to some arbitrary length (which last I heard isn't known yet) and if we had
some reasonable way to search and index all of that content (which we don't).

------
psadri
Did they find the patterns (circle?) that was referend at the end of Carl
Sagan’s Contact book?

------
megaremote
Does pi compress? It must if it is only numbers, but only by a half?

~~~
dekhn
pi is effectively randomly distributed (I don't know if this is proven) which
means it would be effectively impossible to compress is using conventional
entropy or dictionary based techniques.

However, there are compact formulas which can generate pi to arbitrary
precision, trading off compute time with space. So it;'s effectively
compressible, I guess this relates to Kolomogorov complexity in some way.

~~~
yjftsjthsd-h
If it's stored as ASCII/UTF8 text, then it will be compressible because it's
just numbers. On the other hand, if they somehow have a number format that
spans that many digits then it'll already be perfectly efficient.

~~~
dekhn
Um, sure. But I don't think anybody really cares if pi is compressible because
it's ASCII representation of numbers. At best, you'd be getting some constant
factor improvement due to the unused bits, but there's nothing specific to pi
in that.

------
abdulhaq
You don't get those gigajoules of heat waste back at the end

------
pgrote
Why did she stop calculating? A time limit or resource issue?

~~~
DougBTX
They calculated π * 10^13 digits for Pi day (14th March, 3/14 in month/date
format) so it was an artistic/aesthetic choice.

------
AgentK20
Absolute madmen

~~~
dvhh
That could explain the slight trouble they had recently

------
dheera
"31,415,926,535,897 to be exact, or π * 10^13"

Uhm no, you mean, _approximately_ π * 10^13.

~~~
perl4ever
Exactly ⌊π * 10^13⌋

------
Medox
I wonder if the blockchain (or contract?) approach could break the record
after combining all that gpu power.

~~~
dcow
That’s not quite how it works.

~~~
YayamiOmate
Why not? It is. Calculating pi is trivially parallelizable. If you wrote good
kernels, calculation distribution could be exactly the same.

~~~
shawabawa3
Blockchains that perform computation (e.g Eth), aren't doing parallel
computation as we think of it.

They perform the same computation on every node, there's no way to split up
the work between nodes

