Így épül fel a kínai rekorder szuperszámítógép
Több mint 40 000 processzor, és 10 millió processzormag, 28 megawattos fogyasztás, mindez 270 millió dollárból. Kína legújabb szuperszámítógépe több szempontból is egyedülálló, már csak az a kérdés, hogy sikerül-e megfelelően kihasználni a tetemes számítási kapacitást.
Nagy visszhangot keltett a pár napja bemutatott legújabb kínai szuperszámítógép, mely ellentmondást nem tűrően állt a TOP500 lista élére. A rendszer nyers teljesítménye már önmagában elismerésre méltó, mégsem ettől akkora durranás a Sunway TaihuLight. Kína legújabb szerzeménye már saját fejlesztésekre épül, nyoma sincs Intel processzoroknak vagy épp Nvidia gyorsítóknak, ezzel pedig a szuperszámítógép a távol-keleti nagyhatalom technológiai függetlenedésének egyik mérföldköve lehet.
De mi hajtja?
A 125.4 petaflopsos elméleti maximális számítási kapacitással bíró rendszer teljes egészében a kínai NRCPC (National Research Center of Parallel Computer Engineering and Technology) fejlesztése. A szuperszámítógép alapját az SW26010 processzor adja, ami a ShenWei (angolul Sunway) sorozat negyedik tagja, tehát szó sincs egy farzsebből hirtelen előrántott fejlesztésről.
Az első, ShenWei SW-1 típusjelzésű modellel épp 10 éve jelentkezett a fejlesztő Jiāngnán Computing Lab. Az egyszerű egymagos megoldást két évvel később a kétmagos SW-2 követte, majd 2010-ben befutott az SW-3 (vagy SW1600), melynek alapvető koncepciója leginkább a DEC Alpha 21164-ra hasonlított. A lapka 16 darab 64 bites RISC magot tartalmazott, melyek 1,1 GHz-en 140,8 gigaflopsos számítási teljesítményt biztosítottak. A processzor órajelciklusonként 4 utasítás végrehajtására képes. Egy mag két integer és két lebegőpontos végrehajtóegységet kapott, előbbi 7, utóbbi pedig 10 fokozatú volt.
Ezután hat év szünet következett, mely időt az aktuális főszereplő SW26010 fejlesztésének szenteltek a mérnökök. A ShenWei-64 utasításarchitektúrás processzor mikroarchitektúrájáról egyelőre nem sokat tudni, annyi viszont bizonyos, hogy továbbra is egy 64 bites RISC megoldásról van szó, melynek alapja leginkább DEC Alpha koncepciójához hasonlít, de ez természetesen nem azt jelenti, hogy a kínaiak rendszere egy 15-20 éves mikroarchitektúra másolata lenne.
A processzor (és a teljes rendszer) tervezése a lehető leghatékonyabb lebegőpontos végrehajtás körül forgott, hisz ez a szuperszámítógépek (egyik) legfontosabb paramétere. Ennek megfelelően nincs túlkomplikálva a processzorok felépítése, a mérnökök a lehető legegyszerűbb megoldásra törekedtek a megfelelő számítási teljesítmény elérése mellett.
Az 1,45 GHz-es órajelű SW26010 egy sok, szám szerint 260 magos megoldás, mely négy magcsoportból áll. Ezek mindegyiket 64 CPE (Computing Processing Elements) egységet, egy MPE-t (Management Processing Element), illetve egy MC-t (Memory Controller) tartalmaz. Az MPE gyakorlatilag egy 64 bites out-of-order RISC (vezérlő)mag, ami felhasználói és rendszer üzemmódban egyaránt képes működni. A mag 32-32 kilobyte L1 adat- és utasítás cache-t tartalmaz 256 kilobyte L2 mellett, és egy 264 bites vektor-utasítás végrehajtására képes. Az MPE két futószalagot tartalmaz, így órajelenként 16 flopsra képes a mag 64 bites lebegőpontos végrehajtás, azaz dupla pontosság esetében.
Utóbbi alatt állnak a CPE-k hadrendben, 8x8-as hálóba (mesh) rendeződve fekszik a 64 darab 62 bites out-of-order RISC mag, melyek kizárólag felhasználói módban működhetnek. Ezek mindegyike 16 kilobyte L1 utasítás cache-sel és 64 kilobyte SPM-mel (Scratch Pad Memory) rendelkezik, az MPE-hez hasonlóan pedig a 264 bites vektor-utasítások végrehajtása támogatott. Ezek darabonként egyetlen futószalaggal rendelkeznek, ezzel órajelenként 8 flops érhető el. Az architektúra érdekessége, hogy hagyományos gyorsítótár-hierarchiával egyáltalán nem rendelkezik, helyett a fent említett SPM-re támaszkodik a végrehajtás során.
Egyetlen chip (vagy node) négy magcsoportot tartalmaz, melyek a NoC-on (Network on Chip) keresztül kapcsolódnak össze, mely végül az SI-hez (system interface) csatlakoztatja az összesen 260 magot számláló node-ot. Utóbbi egy szabványos PCI Express interfész két irányban 16 GB/s-os sávszélességgel és 1 mikroszekundumos késleltetéssel. Egyetlen chip elméleti maximális számítási kapacitása 3,0624 teraflops, mely a következő képlettel áll össze: (260 mag x 8 flops/órajel x 1,45 GHz) + (4 mag x 16 flops/órajel x 1,45 GHz).
Egy lapkához egy négycsatornás memóriavezérlő található, minden magcsoporthoz egy dedikált csatorna tartozik. A csatornák 128 bitesek, illetve DDR3-2133 modulokat támogatnak, így a maximálisan elérhető sávszélesség 136,51 GB/s. Minden csatornán 8 gigabájt memória ül, tehát egyetlen node 32 gigbájt memóriából gazdálkodhat.
A Gitlab mint DevSecOps platform (x) Gyere el Radovan Baćović (Gitlab, Data Engineer) előadására a november 7-i DevOps Natives meetupon.
Egyetlen alaplap összesen nyolc SW26010 node-ot (vagy chipet) tartalmaz, ez két kártyából áll össze, melyek mindkét oldalán 2-2 processzor ücsörög. Egy úgynevezett supernode 32 darab alaplapot, ezzel pedig 256 darab node-ot tartalmaz, melyből egy szekrénybe négy darab kerül. Utóbbiból összesen 40 darab található a Sunway TaihuLightban, ami összesen 40 960 node-ot, 10 649 600 magot, és 1,31 petabyte memóriát jelent.
Ahhoz, hogy az elméleti maximális teljesítmény közelébe érjenek a processzorok, nem csak a jó memória-sávszélesség elengedhetetlen, de a chipeket egymással összekötő interkonnekt is kritikus. A kínai szuperszámítógépben szintén saját fejlesztésű, a PCI Express 3.0 felületetre építkező Sunway Network dolgozik. Ez a Mellanox HCA-kra (Host Channel Adapter) és kapcsolókra épül, és három szintet különböztet meg. A legfelső helyen a központi kapcsolóhálózat található, ami az egyes supernode-okat köti össze. A középen elhelyezkedő supernode-hálózat az egyes node-okat kapcsolja össze az supernode-okon belül, mindezt nagy sávszélesség és alacsony késleltetés mellett. Legalul az erőforráselosztó hálózat van, mely többek között az I/O szolgáltatásokkal köti össze a nodeokat. A felezési sávszélesség 70 TB/s, vagyis a rendszert kettőbe vágva legrosszabb esetben ekkora sávszélesség érhető el a node-ok között - vagyis két processzor legalább ekkora sebességen beszélhet egymással például.
Mire elég mindez?
Az új chipek legnagyobb dobása nem is az egyedi architektúra és a magas sebesség, hanem a meglepően jó energiahatékonyság. Végső soron ugyanis ez teszi lehetővé, hogy rendkívül magas teljesítménysűrűséggel és relatív alacsony fogyasztás mellett tudott Kína saját szuperszámítógépet építeni.
Számszerűsítve az SW26010 teljesítmény/fogyasztás aránya 6 gigaflops/watt, valós feladat alatt - tehát nem az elméleti maximális adatot, hanem a Linpack mérés eredményét nézve. Mindez ugyan még nagyon messze van az exascale-hez szükséges 50 gigaflops/watt értéktől, de a TOP500 lista második helyezett Tianhe-2 rendszerénél háromszor kedvezőbb az érték, és ugyanez igaz a harmadik helyezett Titanhoz viszonyítva is.
Jack Dongarra, a Tennessee egyetem kutatója, a TOP500 lista egyik gondozója a helyszínen tekintette meg a rendszert. Beszámolója szerint a rendszer gyenge pontja memória sebessége, illetve az egyes hierarchiaszintek közötti komolyabb adatmozgatás, ami a teljesítmény szempontjából sokba kerül. Ilyen esetben lényegesen gyengébben muzsikál a Sunway TaihuLight mint a Tianhe-2 vagy a Titan, az előbbi kéttő mérési eredményének nagyjából negyedét nyújta a legújabb szuperszámítógép.
A mérleg másik oldalán a hatékonyság áll, ami Dongarra szerint kiváló. A szakember által lefuttatott Linpack (HPL) teszt 74,15 százalékos kihasználtságot mutatott, ami nagyjából 93 petaflopsos végeredményt jelentett. Ugyanebben a tesztben a Tianhe-2 56, a Titan pedig 65 százalékot ért el. Dongarra szerint ezért (is) érdemes komolyan venni a kínaiak legújabb szuperszámítógépét, ami a Tianhe-2-vel ellentétben már nem puszta erődemonstráció, hanem egy jól kihasználható, rendkívül hatékony rendszer.
Hogy fogják ezt kihasználni?
A rendszer szoftveres alapját a Linux-alapú Sunway Raise OS 2.0.5 adja. Az alapvető szoftvercsomag C/C++ és Fortran fordítókat tartalmaz automatizált vektorizációs eszközökkel és matematikai könyvtárakkal kiegészítve. Emellett ott a Sunway OpenACC, mely egy OpenACC 2.0 szintakszist támogató SW26010-ra optimalizált párhuzamos fordító.
Jelen állás szerint a Sunway TaihuLight szuperszámítógépet CFD (számítógépes folyadékdinamika), CAE (számítógéppel segített tervezés), big data, illetve időjárás és élettudományi kutatáshoz használja majd a Vuhszi városában található Nemzeti Szuperszámítógépes Központ.