oktoober 06, 2014

Eksakompuutritest















PS!
Siin üks tubli hiinlane hoolitseb praegu maailmas esimest kohta omava superkolaka tervise eest. 


Kes veel ei tea igasuguste prefiksite slängi, siis eksa (exa) on see lühend, mis tuleb pärast koledat peta-t.
Õppige see selgeks ja olete kohe natukene nagu ekspert arvutite valdkonnas, koos järgmiste tähelepanuväärsete lühenditega:


Kilo  tähistab 10**3 (ja siin kaks tärni astendamist).
Tuleneb kreeka sõnast khiloi (1000).


Kunagi tähistas  täht K ka 2**10 väärtust 1024, aga praegune standard KEELUSTAB kahe astmete tähenduste kasutamist lühendeis
kilo, mega ... ja soovitab veidraid "bi" keelseid prefikseid kibi (1024), mebi (1024**2), gebi (1024**3), tebi (1024**4), pebi (1024**5), zebi (1024**6) ja yobi (1024**7).

On teada legend "kavalast" targast, kes valitsejalt oma leiutise - malemängu -  tasuks küsis viljaterasid  - vaid üks malelauatäis, nii et 1 ruudule 1 tera, 2-le 2 tera, ...64 ruudule 2**63 tera. 

Tasu suuruseks tuleks 16 zebi viljaterasid miinus üks, teisisõnu 18,446,744,073,709,551,615 tera.
Ablas leidur jäi peast ilma tasu saamata. 

 Olen sündinud sellel ajal, kui see arv tähistas midagi võimatult suurt ja Moore arv oli jõudnud suuruseni 2**3 ehk 8 elementi integraalskeemi kohta (1962, 1959 see asi algas, algul tempoga 2 korda rohkem aasta kohta kuni 1975).
Ja ilmselt lahkun siit kusagil sellel ajal või pisut hiljem, kui Maa võimsaim arvuti arvutab mingites zebiflopsides või zettaflopsides (vt. allpool), eeldatavalt omades sama koguse mälu (mõni zebi- või zettabait).


Aga jätkaks maagiliste prefiksitega:

Mega tähistab miljonit, 10**6 (ning ajaloolilselt veel üsna tihti tähistab 2**20) . Tuleneb kreeka sõnast megas (suur) ja on praegu väga väikese mahu sünonüüm.

Giga on meile miljard ja jänkidele biljon (10**9).
Mõnikord ikka veel ka 2**30.
Tuleneb ladina sõnast gigas - gigant.

Tera on 10**12 ja terabaidised kettad pole enam kellelegi mingi uudis. Tuleneb kreeka sõnast "teras" - koletis.
Miks selline normaalne ketta- või mälumaht "kole" on, jääb veidi arusaamatuks.

 Kaalude ja Mõõtude Üldkonverents (CGPM, Conférence générale des poids et mesures pr. keeles) leidis juba 1975, et vajab suuremaid arve ilmaelu kirjeldamiseks ja leiutas prefiksid peta ja exa. Need tulevad kreeka keelsetest sõnadest "pente", 5 ja hex, 6.
1000**5 ja 1000**6 vastavalt siis.

Peta elik 10**15
Petabaidid on mujal ilmas juba täiesti tavaline salvestusühik. See tavasipelgate jaoks ehk jääbki eksootikaks, aga serveri jaoks võiks see olla  igapäevane elu. 
Petaflopsid on suure arvuti arvutusvõimsuse ühik.
Hiinlaste praegu kõike isasem arvuti (vt. pildil) sai kätte 2014 suvel kusagil 30 petaflopsi, s.t. 3*10**16 arvutust sekundis ja loodab järgmine aasta saada kätte 100 petaflopsi. Paraku on kolaka voolutarve praegu 25MW.

Unelmpiir exa 10**18

Eksaflopsideni üritatakse jõuda konservatiivsete plaanide kohaselt kusagil 2019-2022 ja optilist superarvutit ehitava firma Optalysus kohaselt 2020 optiliste meetodite abiga.
Pisike analüüs viitab aga sellele, et see plaan on suuremalt jaolt väga õhku täis asi.
Nii et tegelikult mingeid väga kaalukaid alternatiive veel suuremate kolakate ehitamisele ei paista olevat, aga praegu üle 3-4 järgu juurde ei ole võimalik saada tekkiva tohutu voolutarbe tõttu.

Aga veel on varuks 2 lühendit. CGPM üldkonverents otsustas 1991 lisada prefiksi zetta (sõnast septo, seitse, s aga oleks tekitanud segadust) ning yotta (sõnast octa, kaheksa, aga et vältida o-d, mis tekitanuks ka segadust).
Zetta on siis 10**21 
Zettaflopsid peaksid olema vajalikud kliimaarvutustel.

Yotta on ilmselgelt  "varuks", sest "mine sa seda Moore't tea",  ja võrdub 10**24.
Keemikutele on see muidugi jälle päris tavaline mõõtühik molekulide ülelugemisel, sest kooli taibudele tuttav Avogadro arv on suurusjärgus 6.022*10**23 (mis on umbes 2**79).

Kuidas siis need superkolakad neid flopse võtsid

Kiloflopsi kohta on teada, et ENIAC töötas 5kHz peal (1946). 

Megaflops võeti 1964
(CDC 6600).

Gigaflopsini läks sealt aega 21 aastat – 1985, btw, minu ülikooli lõpetamise aeg. 
Teraflopsi rajajoon saadi kätte 1996.

Petaflops võeti ära 2008.
Ja praegu on hiinlastel siis 30 petaflopsi võetud ja veel 30 korda rohkem vaja kolakat kasvatada – kiirendada ja ongi valmis tehtud eksakolakas.

Sellega võikski “lühiülevaate” lõpetada teemal “eksaskaala” arvuti, kui
ei jääks painama LITHNE küsimus:

Kuhu aga need flopsid on siis jäänud?

Oleme kõik kuulnud Moore seadusest ja mega ja peta vahekord ütleb selgelt – aastate 1965 ja 2015 arvutusvõimsuste vahe on MILJARD korda.
Kujutlegem algul vaimusilmas ühte inimest midagi ehitamas -  ütleme müüri ja seejärel pangem seda tegema miljard inimest.
Suure Hiina Müüri pikkus olevat 8800 km, kõrgus 7 m jagu, laius 6 m.
Ümardame üles s.t. pikkus kusagil 10**7, kõrgus 10, laius 10, kokku 10**9 kuupmeetrit. Üks inimene paneb üsna kerge vaevaga müüri 1 m3 tellist.
Meie praegused arvutusvõimsused võimaldaksid meile piltlikult kokku ehitada Hiina müüri laadseid programseid imesid. 
Mida aga ei ole, on need imed. 
Meil on vaid natukene paremad arvutid, kui oli 60-ndatel või 80-ndatel. 
Eriti terav kontrastipuudus vaevab 80-ndatel arvuti taga istunud inimesi, sest 4.77 MHz –ga tiksunud IBM PC TÜ Füüsika Instituudis tundus mulle peaaegu täiuse tipuna, sest mitu aastat olin vaevelnud ühe veel hullema kasti käes, mis ometi oli ka arvuti.  

Ka selle arvutiga, kus oli 8 kilobaiti operatiivmälu, sai arvutada Fourier pöördeid ja automatiseerida eksperimenti, tõstes meie labori töö uuele kvalitatiivsele tasemele – enam ei pidanud käsitsi midagi tegema, see väike kast juhtis sammmootoreid ja tegi muid imeasju ....
Aga mitu järku võimekam arvuti tundus peaaegu unelmana.
See, praegune legendaarne IBM PC tegi tollase programmvara abiga peaaegu kõike, mida tänanegi arvuti. Jätame kõrvale uue ja tõeliselt uuendusliku nähtuse nimega Internet, sest tõenäoliselt oleks see sellega ka hakkama saanud.
Graafika oli olemas, kuigi viletsam, kui täna. Word ja temaga samaväärsed programmid olid olemas. Isegi Autocad toimis. Kõvaketas, vist  40 Mb on praegu miniatuur, aga sinna mahtus kõik vajalik ära. Ja nii edasi...

On selge, et selle aja jooksul on toimunud oluline progress. Aga see progress oodatust tunduvalt väiksem, pigem aeglane võimaluste lisandumine.
Mitte üheski teises vallas ei ole progress niivõrd mittelineaarne selle olulisema sisendparameetri - flopside suhtes.
Paradoksaalne, et selles on kõik ühel meelel: Flopsid on väga tähtis parameeter, kuigi meie ajavõite tema suurendamine ei tähista.

Oleks loomulik, kui 1000 töölisega saaks teha kui mitte 1000 korda rohkem, siis vähemasti 100 korda enam asju.
Kahjuks 3 GHz, seda NELJATUUMSE protsessoriga, ja 5Mz vahe ei ole isegi mitte 100-kordne, võimalusi on tunduvalt vähem lisandunud, kui vähemalt tollal, 1987,  oleks eeldanud.

Üks võimalus selle mittelineaarse kasvu või pigem kasvu elimineerimise tendentsi uurimisel oleks arvuti "pudelikaelade" analüüs. Isegi siin on varsti kõik väidetavad pudelikaelad pea kadunud - näiteks aeglane kõvaketas, mida nüüd asendab SSD.
Kuna kõik ülejäänud pudelikaelad arvuti jõudluses on varsti elimineerunud, jäävad järgi 2 siiski veel silmatorkavat asjaolu:

I Programmid, tarkvara. 

Kõige kisendavama ressursinappuse ajal, 60-ndad ja 70-ndate alguses, on sündinud enamik praegu programmeerimist suunavaid juhtideid. Edasi on olnud vaikus.
Moore'i seaduse kuldaegadel (1975-2000) on juurutatud vaid objektorienteeritust, mis on küll mõnda mõtlemisviisi korrastanud, aga mitte mingil viisil revolutsioneerinud. 
Kuldajaks nimetan seda perioodi seetõttu, et ei olnud vaja peale transistori vähendamise üldse mitte midagi teha ja sai tõsta taktsagedust, kõik muu võis jätta samaks, k.a. programmeerimise paradigmad.
Paralleelsuse rakendamist ei ole oluliselt edasi arendatud. Nii nagu need ideed suurte kolakate pealt personaalarvutite valda tulid, nii nad seal suuremalt osalt on jäänud.  
Funktsionaalne programmeerimine koguni lükati kõrvale kui eksootika ja alles nüüd, Moore seaduse lõpu aegadel, läheb see jälle moodi.
AI, tehisintellekti uuringud, on tammunud paigal. 
IBM Watson siiski ütleb, et NÜÜD ehk on aeg. Ja jälle toimub see nihe mitte siis, kui ressursse on piisavalt, vaid siis, kui pea lõppematuna tunduv ressursi juurdevool on peatumas.


II Raha - olemusliik, kõrvaldamatu pudelikael.

Iroonilis-tinglikult tähistab programmeerimismaailmas seda lühend M$. Selle firma "programmeerimiskeele" Power Shell muutujad mdx algavad ka dollari märgiga - kogemata välja kukkunud eneseirooniline äbarleiutis, nagu see keel tervikuna on (olemasoleva skriptimiskeelega Js-ga võrreldes, mis aga kõrvale heideti).
See rahamasin siiski ühelt poolt tingis või vähemalt soodustas Moore seaduse toimimist.
Teiselt poolt, et see tõesti toimiks majanduslikult, oli vajadus oma turgu kasvatada ja hiljem hoida. Kui turg küllastus, oli vaja kasutusele võtta muud kavalused, et tarbija ostaks uue arvuti. 
Miks mitte ühe kavalusena kasutada mõtet, et vanad arvutid vahest ei pea kõike väga kiiresti tegema (kuigi võiksid?).
Kõik tuntud muud nipid on ka käiku läinud - näiteks moe appitoomine. Lihtsalt sellel hooajal on moes sellised suured kandilised ikoonid. Ja ajaga kaasaskäivad tibid ostavad enesele uue moodsa roosa õunaarvuti või ifööni.
Kuigi Apple kindlasti turundab ka hästi, ei ole teatud piirini seal mindud ja me näeme välja joonistuvat täiesti selget vahet M$ vahel ja õunaarvutite vahel. Minu Mac ei ole mind alt vedanud, hänginud kiiretel aegadel ja raisanud tühjalt minu aega.

KUI programmeerimise pudelikaelu saaks leevendada ja Moore seaduse lõppemine seda ilmselt teeb, siis kapitalismi olemusliku pudelikaela - ahnuse - leevendamiseks on vaja Linuxi laadse idealismi taassündi ja mitu korda enama võimendusega, kui ta seda kunagi oli.
See tähendab mingit uut tüüpi sotsiaalset mõtlemist ja siin ma täna peatun, sest ma olen eemaldumas poliitikast vähemalt praeguseks hetkeks.

Ükskord saab see õudus läbi:

Aga läheme nüüd tagasi rõõmsamate momentide juurde, s.t. selle juurde, et pärast Moore seaduse lõppemist lõpuks ometi saab keskenduda programsetele pudelikaeltele.
Nimelt ei pääse eksa ja zettaarvutite puhul enam üle ega ümber voolutarbimisest.
Ka praegu oleks eksaarvuti ehitamine täiesti teostatav, aga see võtaks minimaalselt 500 MW võimsust. Praegune suurim kolakas Hiinas tarbib "vaid" 24 MW.  
Oletame optimistlikult, et voolutarvet saaks alandada 5-10 korda ja eksaarvuti tehakse valmis, mis "vaid" 50 MW voolu võtaks. Siis 20 eksaflopine jurakas võtaks voolu ikkagi 1 GW ja siin kusagil on isegi suurriikidel piir ees, sest ... Eesti kõige suurem voolutarve ajalooliselt on senini 1.6 GW!!

Inimkonnal peavad olema ikkagi väga põhjendatud vajadus zettaarvutit teha, kui see kulutab sama palju elektrienergiat, kui võiks olla suurriigi energiatarbimine.

Enne seda, kui see vajadus üldse tekiks, tuleks programmeerijatel õppida niivõrd paralleelsete kastide korralik programmeerimine selgeks.
Selgub nimelt, et enamasti seisab kolakate kogu praegunegi võimsus jõude, sest programmid lihtsalt ei ole piisavalt paralleelsed. Sellel lihtsalt põhjusel ei käi keegi enne välja raha sellise monstrumi rajamiseks, kui ei ole põhjani läbi uuritud võimalused nii voolutarbe kui ka tarbitava arvutusvõimsuse alandamiseks ja olemasoleva maksimaalseks kasutamiseks.
Järelikult on järgmiste astmete võtmisel täiesti kriitilise tähtsusega kaks olulist asja - voolutarve ja programmeerimise paradigmad. Mõlema peavad muutuma, muidu zettaprefiksini ei ole võimalik jõuda.
Lihtsurelikele võivad siin terenduda üsna tänuväärsed asjad. Lõpuks saavad OS-d korda, sest suure kolaka molutamine on liiga kallis lõbu ja tõenäoliselt saab kõrgetelt kolakatelt allaporditud OS-d korralikult käima ka väikeste kastide peal. Just nii on ajalooliselt toimitud 80-ndatet: UNIX oli suurte süsteemide OS ja sellel põhinevad personaalarvutite OS-d on hästi välja kukkunud (MAC, LINUX-id), põlve otsas arendatu osutus ja jäi ja jääb käkiks (M$).
Aga need väikesed kastid enam ei varsti olegi nii väikesed, vaid nende kastide kogu võimsus sõltub vaid selle kasutaja võimekusest oma arvutitele lisagraafikaprotsessoreid (mis moodsamas mõttes on lihtsalt kaasprotsessorid) osta.
Kui varematel aegadel näiteks 100 või 1000 paralleelse protsessi kasutamine võis jääda vaid unistuseks, võib seda GPU-d kasutades (Graphic Processing Unit) kindlasti teha.
Tavalised protsessorid võivad omada vaid 4, maksimaalselt 8 tuuma,
mis küll on väga sõltumatud protsessorid ühes kiibis. Seevastu graafikaprotsessoritel on juba praegu kasutada sadu paralleelseid protsessoreid korraga. Ilmselt see tendents veel süveneb ja kui kellelgi on vaja rohkem rehkendust, tuleb osta lihtsalt "graafika"mooduleid, mis pigem on kaasprotsessorid. Juba praegu saab nendega arvutusrohketes rakendustest 10 korda kiirust juurde.
 ….
Kokkuvõte:
Lõputu õudus nimega Moore seadus peabki ära lõppema. 
Äkki paneb see meid mõtlema, enne kui hakkame midagi arvutama ja äkki paneb see meid ka korralikumalt arvutama, nii et need arvutused ei raiskaks meie endi, aga ka teiste aega.
Lohutuseks - Moore ajastu lõpuni on jäänud veel vähemalt 8 aastat.
Michio Kaku ja teised pakuvad selle ajastu lõpuaastaks 2022.