Bailey-Borwein-Plouffe'i valemoodul võimaldab eraldi kuusnurkset või binaarset numbrit pi arvust hankida ilma eelnevate arvutusteta (praegune rekord on saavutatud Chudnovsky algoritmi abil, vt allpool).
Google Compute Engine'i arvutusklaster arvutas 121 päeva jooksul 25 virtuaalmasinas pi suurima numbrikoguse, seades uue maailma rekordi: 31,4 triljonit numbrit pärast kommandit. See on esimene kord, kui nii suurt pi arvutust tehti avalikus pilvelahenduses.
Rekord kantakse üles Emma Haruka Iwao nimele, kes töötab Google'i kõrgtehnoloogiliste arvutuste osakonnas. Just tema kasutas Google Cloud'i infrastruktuuri arvutuste tegemiseks. Eelmine maailma rekord saavutas Peter Truub 2016. aastal, arvutades pi 22,4 triljoni numbrini. , mida sponsoreeris ka tema tööandja.
Nagu Truub, kasutas Google'i insener y-cruncher'it. See programm rakendab , mis on kiire algoritm pi arvutamiseks. Juba 80ndatel kasutasid seda nõnda arvutati miljard koma järel olevat numbrit.
Oma korda põhineb algoritm kiire konvergentsi omadusel hüpergeomeetrilises reas:
Emma Haruka Iwao sai «maagilise» numbri kohta teada matemaatika tunni ajal koolis, Wired. Ülikoolis oli üks tema professoritest, Daisuke Takahashi, rekordite omanik arvutatud numbrite hulgas superarvuti abil. Tänapäeval suudab rekordit püstitada praktiliselt iga huvitatud insener, kellel on juurdepääs tõsistele arvutusressurssidele ja suurele andmesalvestusele (arvutuste tulemuste salvestamiseks). 2009. aastal loodud programm on mõeldud matemaatiliste konstantide, näiteks pii, arvutamiseks. See toetab massilist mitme lõime kasutamist ja triljonilist vahemikku. See programm on tegelikult kommoditiseerinud konstantide arvutamise.
«Sul on vaja üsna suur arvuti, et murda maailmarekord, — ütleb Ivao. — Poest ostetud arvutile see ei õnnestu, seetõttu on inimesed varem ehitanud kohandatud masinaid.» Septembris 2018 hakkas Ivao uurima, kuidas tehniliselt toimib arvutuste protsess, mis ületab rekordi piire. Kohe oli selge, et peamiseks probleemiks saab olema andmete salvestamise maht. Lõppkokkuvõttes selgus, et arvutatud tulemus võtab 170 terabaiti. Erinevalt kohandatud serverite kokkupanekust, nagu eelkäijad, kasutas ta Google Cloudi infrastruktuuri.
Ivao tõstes 25 virtuaalmasinat: «Kuid selle asemel, et vajutada seda virtuaalmasina nuppu 25 korda, automatiseerisin selle, — selgitab ta. — Sa saad selle tehtud paariga minutiga, kuid kui sul on nii palju arvuteid, siis kulub kõikide seadistamiseks mitu päeva.» Seejärel haldas Ivao pidevalt 121 päeva jooksul y-cruncher'i tööd nendel 25 virtuaalmasinal.
Korrektsete arvutuste jaoks pidid virtuaalsed masinad pidevalt töötama. Insener seadis üles monitooringusüsteemi, mis hoiataks teda, kui midagi läheks valesti, näiteks kui üks virtuaalmasinatest ebaõnnestuks. Ükski rike — isegi paariks minutiks — võiks ohustada kogu arvutusprotsessi, kui mitte varukoopia.
"Kraaneris ja Google Cloudis on varundamissüsteemid, ja ma seadistasin need nii, et võiksite neid kettaid koheselt varundada, arvutusi peatamata," ütleb Ivao. Need andmed kopeeriti seejärel ja salvestati väliselt, teistele kettale, hetkepiltidena.
"Alguses oli mitu parameetrit, mida ma muutsin, näiteks kui palju andmeid te saate korraga lugeda või kirjutada, ja kuidas piirid muutuvad, kui need suurenevad," ütleb Ivao.
Numbrite arvu suurenemisega suurenes ka failide maht, ja arvutuste keerukus kasvas mittelineaarselt. See väga keeruliseks muutis algse arvutuse, kui Ivao püüdis välja selgitada, millist virtuaalmasinate ressursi ta projekti jaoks vajab.
Nüüd on nii arvutused kui ka tulemuste kontrollimine lõpetatud: y-cruncherisse on integreeritud kaks põhialgoritmi – üks pi arvestamiseks ja teine tulemuse kontrollimiseks. Kontrollimisalgoritm töötab paralleelselt arvutamisega, kuid arvutab ainult ühe numbri, nii et rekordit saab ametlikult registreerida.
Teoreetiliselt on võimalik seada uus maailmarekord, kui võtta lihtsalt eelmine fail ja rakendada Baylori – Borweini – Plaffi valemit, et arvutada veel üks number. Kuid see rikub tõenäoliselt selliste maailmarekordite registreerimise reegleid: tõenäoliselt peab iga kandidaat arvutama alates nullist. Alternatiivina: parandada eelmist saavutust N% võrra, mis ei ole Baylori – Borweini – Plaffi valemi kohaselt võimalik.
Allikas: habr.com
