Formula Bailey-Borwein-Plouffe, which allows extracting any specific hexadecimal or binary digit of the number pi without calculating the previous ones (the current record was set on the Chudnovsky algorithm, see below)
The Google Compute Engine computational cluster calculated the largest number of digits in pi over 121 days on 25 virtual machines, setting a new world record: 31.4 trillion digits after the decimal point. This is the first time public cloud software has been used to compute pi to such an extent.
The record will be attributed to Emma Haruka Iwao from the high-performance computing division at Google. She utilized Google Cloud infrastructure for the computations. The previous world record was set by Peter Truong in 2016, who calculated pi to 22.4 trillion digits , which was also sponsored by her employer.
Like Truong, the Google engineer applied y-cruncher for the calculation. This program uses , a fast algorithm for calculating pi. Even in the 80s, the used it to calculate a billion digits after the decimal point.
In turn, the algorithm is based on the fast convergence property of the hypergeometric series:
Emma Haruka Iwao became fascinated with the 'magic' number after learning about it in a math class at school, Wired. At university, one of her professors, Daisuke Takahashi, was the record holder for the number of calculated digits of pi using a supercomputer. Today, almost any interested engineer with access to robust computational resources and ample storage (to hold the results of the calculations) can set a record. The program created in 2009, , is designed to calculate mathematical constants like pi. It supports massive multithreading and trillion-digit ranges. This program effectively commoditized constant calculations.
„Ai nevoie de un computer destul de mare pentru a bate recordul mondial“, spune Ivao. „Nu poți face asta pe un computer din magazin, așa că, în trecut, oamenii își construiau mașini personalizate.” În septembrie 2018, Ivao a început să analizeze cum va funcționa tehnic procesul de calculare dincolo de gama recordului. A devenit imediat evident că principala problemă va fi volumul datelor de stocare. În final, s-a constatat că rezultatul calculat ocupă 170 de terabytes. În loc să construiască un server personalizat, ca predecesorii săi, fata a folosit infrastructura Google Cloud.
Ivao a lansat 25 de mașini virtuale: „Dar în loc să apas pe acel buton al mașinii virtuale de 25 de ori, l-am automatizat“, explică ea. „Poți face asta într-un minut, dar dacă ai nevoie de atât de multe computere, îți va lua câteva zile să configurezi totul.” Apoi, timp de 121 de zile neîntrerupte, Ivao a gestionat funcționarea y-cruncher pe aceste 25 de mașini virtuale.
Pentru corectitudinea calculilor, mașinile virtuale trebuiau să funcționeze constant. Inginerul a instalat un sistem de monitorizare care o avertiza dacă ceva nu mergea bine, de exemplu, despre o defectare bruscă a uneia dintre mașinile virtuale. O singură defecțiune - chiar și pentru câteva minute - ar fi putut compromite întregul proces de calculare, dacă nu ar fi avut un sistem de rezervă.
„În cruncher și Google Cloud există sisteme de rezervă, iar eu le-am configurat astfel încât să poți crea instantaneu copii ale acestor discuri, fără a opri calculările“, spune Ivao. Aceste date erau apoi copiate și stocate de extern, pe alte discuri, sub formă de instantanee.
„La început, au fost câteva parametrii pe care i-am modificat, de exemplu, cât de multe date puteai citi sau scrie simultan și cum se vor schimba limitele pe măsură ce se măresc“, spune Ivao.
Pe măsură ce numărul cifrelor a crescut, volumul fișierelor a devenit mai mare, iar complexitatea calculilor a crescut neliniar. Acest lucru a complicat foarte multe calculul inițial, când Ivao încerca să estimeze ce resurse ale mașinilor virtuale ar fi necesare pentru proiect.
Acum s-au finalizat atât calculele, cât și verificarea rezultatului: în y-cruncher sunt integrate două algoritmi de bază - unul pentru calcularea cifrei pi și altul pentru verificare. Algoritmul de verificare funcționează paralel cu calculul, dar calculează doar o singură cifră, astfel încât recordul poate fi înregistrat oficial.
Teoretic, un nou record mondial poate fi stabilit dacă se ia pur și simplu fișierul anterior și se aplică formula Bailey – Borwein – Plouffe pentru a calcula încă o cifră. Dar cu siguranță aceasta va contraveni regulilor de înregistrare a acestor recorduri mondiale: cel mai probabil, fiecare pretendent trebuie să înceapă calculul de la zero. Ca alternativă: îmbunătățiți realizarea anterioară cu N%, lucru ce nu va fi posibil cu formula Bailey – Borwein – Plouffe.
Sursa: habr.com
