A Bailey-Borwein-Plouffe képlet, amely lehetővé teszi bármely adott hexadecimális vagy bináris számjegy kinyerését a pi szám értékéből anélkül, hogy a korábbiak kiszámítására lenne szükség (a jelenlegi rekordot a Chudnovsky-algoritmus állította fel, lásd lent).
A Google Compute Engine számítási klasztere 121 nap alatt 25 virtuális gépen a pi szám legnagyobb számjegyeit számította ki, új világrekordot állítva fel: 31,4 trillió számjegy a tizedesvessző után. Ez az első alkalom, hogy egy ilyen méretű pi szám kiszámításához nyilvános felhőalapú szoftvert használtak.
A rekordot Emma Haruka Iwao, a Google nagy teljesítményű számítástechnikai részlegének munkatársa jegyzi. Ő használta a Google Cloud infrastruktúráját a számításhoz. Az előző világrekordot Peter Trueb állította fel 2016-ban, ő 22,4 trillió számjegyig számította ki a pi-t. , amit a munkáltató is szponzorált.
Ahogyan Trueb, a Google mérnöke is y-crunchert használt a számításhoz. Ez a program , egy gyors pi számítási algoritmusra épül. Már az 1980-as években maguk segítségével milliárd számjegyig számolták ki a pi-t.
Az algoritmus viszont a hipergeometrikus sor gyors konvergálásának tulajdonságán alapul:
Emma Haruka Iwao a „varázslatos” szám iránt érdeklődött, miután iskolai matematikai órán hallott róla. Wired. Az egyetemen egyik professzora, Daisuke Takahashi szuperkomputerekkel elért számjegyszám rekordere volt. Ma szinte bármely érdeklődő mérnök, akinek komoly számítási erőforrásai és nagyobb tárolókapacitása van (a számítások eredményeinek tárolására), felállíthat rekordot. A 2009-ben létrehozott program a matematikai állandók, például a pi szám kiszámítására készült. Támogatja a masszív párhuzamosítást és trilliószoros tartományokat. Ez a program lényegében kommersszé tette az állandók számítását.
„Elég nagy számítógép kell a világrekord megdöntéséhez – mondja Ivao. – Ezt nem lehet egy boltban vásárolt géppel megcsinálni, ezért korábban az emberek egyedi gépeket építettek.“ 2018 szeptemberében Ivao elkezdte vizsgálni, hogy technikailag hogyan működik majd a számítás a rekordszámok fölött. Azonnal világossá vált, hogy a fő probléma az adatok tárolása lesz. Végül kiderült, hogy a kiszámított eredmény 170 terabájtot foglal el. Az elődökhöz hasonlóan, a lány nem egyedi szervert épített, hanem a Google Cloud infrastruktúráját használta.
Ivao 25 virtuális gépet indított: „De ahelyett, hogy 25-ször megnyomtam volna azt a gombot, automatizáltam azt – magyarázza. – Ezt megteheted pár perc alatt, de ha ennyi számítógépre van szükséged, akkor több napra lesz szükséged, hogy mindent beállíts.“ Ezt követően Ivao 121 napon keresztül folyamatosan irányította a y-crunchert ezeken a 25 virtuális gépen.
A számítások helyessége érdekében a virtuális gépeknek folyamatosan működniük kellett. Az mérnök egy monitorozó rendszert állított be, amely figyelmeztette volna, ha valami baj történt, például egy virtuális gép váratlan leállása esetén. Mindössze egy baleset – még pár percre is – veszélyeztethette volna az egész számítási folyamatot, ha nem lett volna mentés.
„A cruncherben és a Google Cloudban vannak mentési rendszerek, és én őket úgy állítottam be, hogy az adatlemezek másolatát azonnal el lehessen készíteni anélkül, hogy leállítanánk a számításokat – mondja Ivao. Ezek az adatok ezután más külső lemezekre másolták és snapshot formában lettek tárolva.
„Eleinte több paramétert változtattam, például hogy mennyi adatot tudtál olvasni vagy írni egyszerre, és hogy a határok hogyan fognak változni a növekedés során – mondja Ivao.
A számjegyek számának növekedésével a fájlok mérete nőtt, míg a számítások bonyolultsága nemlineárisan emelkedett. Ez nagyon megnehezítette az első számítást, amikor Ivao megpróbálta kiszámítani, hogy milyen erőforrásokra lesz szüksége a virtuális gépeknek a projekthez.
Most a számítások, mind az eredmények ellenőrzése befejeződött: a y-cruncherbe két alap algoritmus van beépítve - az egyik a pi kiszámítására, a másik az ellenőrzésre. Az ellenőrző algoritmus párhuzamosan működik a számítással, de csak egy számjegyet számít, így a rekord hivatalosan regisztrálható.
Elméletileg új világrekordot lehetne felállítani, ha egyszerűen elvennénk az előző fájlt, és alkalmaznánk a Bailey-Borwein-Plouffe formulát egy új szám kiszámításához. De ez valószínűleg ellentmond a hasonló világrekordok regisztrálásának szabályainak: valószínűleg minden jelöltnek nulláról kell kezdenie a számítást. Alternatíva: javítani a korábbi eredményt N%-kal, amit a Bailey-Borwein-Plouffe formulával nem lehet elérni.
Forrás: habr.com
