User talk:Sveelaid
Üldinfo
Pealkiri:"Superarvutid"
Autor: Sven Veelaid
Kursus: IT sotsiaalsed, professionaalsed ja eetilised aspektid
Õppejõud: Kaido Kikkas
Ajalugu
Üldiselt arvutite ajaloost
Masinad, mida me võime lugeda arvutiteks selle sõna tänapäevases üldlevinud tähenduses, said alguse 19. sajandil Inglise matemaatiku Charles Babbage töödest. Laialdaselt tänapäevaste arvutite isaks peetav Babbage tutvustas ideed programmeeritavast mehaanilisest arvutist. Tõsiasjas, et Babbage’i eluajal ühtegi tema kavandatud arvutusseadet valmis ei ehitatud võib leiutaja ebakompetentsuse asemel süüdistada rahastamise puudulikkust ning isiklikke konflikte.[1]
Olenemata sellest, et Babbage’i masinad olid mehaanilised ja töötanuks peamiselt auru jõul, sarnaneb nende arhitektuur siiski suuresti tänapäeva arvutitele: andmete ja programmi mälu eraldatus, juhistepõhine juhtimine, tingimuslausete kasutamine, eraldi sisendi-väljundi süsteem jne.[2]
Üldiselt saab tänapäevased, see tähendab elektroonilised arvutid jagada kolmeks suureks põlvkonnaks:
1937 – 1946. Aastal 1937 ehitasid John V.Atanasoff ja Clifford Berry esimese digitaalse arvuti, mille nimi oli Atanasoff-Berry Computer (ABC)[3]. Selle ajajärgu arvuteid saatsid mitmesugused tehnoloogilised uuendused, ning peamiselt arendati neid arvuteid militaarkasutuseks. Peamiselt sõjatööstuse tarbeks tootmine hakkas muutuma aastal 1946 kui loodi Electronic Numerical Integrator and Computer (ENIAC).[4]
1947 – 1962. Arvutid hakkasid vaakumtorude asemel kasutama transistoreid, mis omakorda tõstsid märgatavalt arvutite töökindlust. Selle perioodi vältel arendati välja üle 100 programmeerimiskeele. Salvestusseadmetena olid laialdaselt levinud magnetiline lint.[5]
1963 – tänapäev. Leiutati kiibid, mis võimaldasid toota palju väiksemaid, töökindlamaid ning võimsamaid arvuteid, mis suudavad samaaegselt jooksutada mitut programmi. 1980 – loodi MS-Dos. 1981 – IBM tutvustas PC-d. Alguse said Microsoft Windowsi ja personaalarvutite võidukäik.[6]
Lühidalt superarvutite ajaloost
Superarvutite ajalugu ulatub 1960 aastatesse kui Manchesteri ülikoolis loodi Atlas Computer (1962), mida tol ajal peeti maailma kõige võimsamaks arvutiks (kiiruseks umbkaudu 1 mikrosekund tehte kohta). Levinud ütlus Atlase kohta väidab, et selle arvuti valmistamisega kahekordistati üleöö Suurbritannia arvutusvõimsus.[7]
Aastal 1964 lõi Seymour Cray CDC 6600, mis oli 10 korda kiirem ükskõik, millisest teisest tollasest arvutist. Kuna seda arvutit toodeti kokku 100 tükki ning seda kasutati kõikjal üle maailma (kaasa arvatud CERNis), võib öelda, et just selle arvutiga lõi Seymour Cray superarvutite tööstuse. [8]
Kui 1980 aastateni toodeti superarvuteid, millel oli vähe protsessoreid, siis 1990 aastatel hakkasid ilmuma tuhandete protsessoritega superarvutid ning 20. sajandil kümnete tuhandete protsessoritega superarvutid.[9]
Riistvara ja arhitektuur
Alates esimeste superarvutite loomisest 1960 aastatel on nende ehitamise üldised põhitõed mitmeti muutunud. Kui algusaastatel peeti jõudluse saavutamiseks olulisemaks innovaatilist disaini ja nn kohalikku parallelismi, siis hilisemad superarvutid tuginevad pigem standartsetele komponentidele ning nende suurele hulgale.
Massiivne tsentraliseeritud parallelism
1980 aastate jooksul kasvas nõudlus arvutusvõimsuse järele kiiresti ning sai alguse paljude protsessoritega superarvutite ehitamine, millel oli jagatud mälu ja failisüsteem. Tsentraliseeritud lähenemine tähendab, et hulk üksteisele lähedal asuvaid iseseisvaid arvutusüksusi on omavahel ühendatud läbi kesküksuse (clustering middleware), mis arvutite tööd juhib. See kesküksus on tarkvaraline kiht, mis võimaldab kasutajal kasutada mitmetest arvutitest koosnevat võrku kui ühte suurt arvutit. Juhul kui kasutatakse suurt hulka pooliseseisvaid arvutusüksusi (millega klasteri puhul ka tegu on), muutub äärmiselt oluliseks nende üksuste vahelise ühenduse kiirus ja paindlikkus.[10]
Massiivne jaotatud parallelism
Jaotatud parallelism kasutab suurt hulka arvuteid, mis asuvad erinevates, teineteisest kaugel asuvates asupaikades. Tegu on oportunistliku lähenemisega, mis tähendab, et kesküksus, mis arvutite tööd juhib, saadab arvutile ülesande siis kui arvuti on vaba selle ülesandega tegelemiseks. Selle näiteks võib tuua süsteemi nimega BOINC (Berkeley Open Infrastructure for Network Computing)[11], mis kasutab ülisuurte arvutusvõimsuste (mitme petaflopised kiirused) saavutamiseks ligi poolt miljonit arvutit üle maailma, mis kasutavad omavaheliseks suhtluseks internetti. Vaatamata suurte arvutusvõimsuse saavutamisele ei kajastu need kiirused üldiselt maailma võimsaimate arvutite edetabelites, kuna standartse LINPACKi[12] [13] jõudlustesti läbimine on raskendatud. Kuigi oportunistlik lähenemine võimaldab saavutada suuri arvutusvõimsusi, ei ole sellele sobivad kõik säärast jõudlust nõudvad ülesanded, eeskätt ülesanded, mis vajavad suurt võimsust korraga ja lühikese ajaperioodi jooksul (näiteks ilmastikuolude täpne ennustamine, vedelike dünaamika simulatsioonid). Seda eelkõige seetõttu, et kõik süsteemi ühendatud arvutid ei ole üldiselt kunagi korraga saadaval. Samuti seepärast, et arvuteid ühendava kanalina kasutatakse internetti, mille kiirus kõigub märgatavalt olenevalt arvutusüksuse asukohast maailmas, kellaajast, konkreetse riistvara spetsiifikast, kasutatavast tehnoloogiast jpm.
Tarkvara
Alates esimeste superarvutite valmimisest kuni tänapäevani on nende arhitektuur suuresti muutunud.[14] Kuna algusaastatel oli arvutite kiiremaks muutmise peamiseks meetodiks innovaatiliste lahenduste rakendamine,loodi ka igat arvutit silmas pidades just teatud sellele arvutile sobiv tarkvara.[15] Tänapäeva superarvutite loomisel kasutatakse pigem paralleelsust ning üldlevinud, tavakasutuses leiduvaid arvutikomponente. See võimaldab riistvaral jooksutada ka levinud tarkvara, nt Linuxit.[16] Siiski, kuna superarvutite ülesehitus erineb tavaarvutit omast (sarnasused on pigem kasutatavates komponentides), ei saa kasutada Linuxit selle nn puhtal kujul, vaid luuakse sellest kindlale arvutile sobiv versioon, st puudub ühtne superarvutitele kehtiv standard. Näiteks kasutab Sunway TaihuLight (2016 juuli seisuga maailma võimsaim arvuti) operatsioonisüsteemi Sunway RaiseOS 2.0.5, mis põhineb Linuxil.[17]
Jõudluse mõõtmine
Võimekus vs mahutavus (capability vs capacity)
Olenevalt superarvuti kasutusalast jagunevad nad üldiselt kaheks: arvutid, millel on suur võimekus ja arvutid, millel on suur mahutavus.[18] Mahutavuse põhised superarvutid on loodud lahendama üheaegselt mõndasid keskmise suurusega ülesandeid või paljusid väikeseid ülesandeid olles seejuures suhteliselt säästlikud. Sageli ei peeta selliseid süsteeme superarvutiteks, sest need arvutid ei tegele ühe suure probleemi lahendamisega.
Vastandudes eelnevale on võimekusele orienteeritud arvutid loodud silmas pidades seda, et nad suudaksid lahendada ühte suurt ülesannet võimalikult lühikese aja jooksul. Taolisi süsteeme kasutatakse sageli ülesannetel, kus on vaja lühikese aja jooksul läbi töötada palju informatsiooni, näiteks ilmaennustus, mille puhul on olemasolevate andmete kiire analüüs kriitilise tähtsusega.
LINPACK jõudlustest
Üldiselt kasutatakse superarvutite võimekuse mõõtmiseks ühikut FLOPS[19] ehk tehteid murdarvudega ühe sekundi kohta (floating point operations per second). Just sellele ühikule on orienteeritud ka LINPACK[20] jõudlustest, kõige levinum ja tunnustatum test, mille alusel superarvutite jõudlust hinnatakse. LINPACKi testi käigus antakse arvutile sisendiks n*n suurune tabel, mis on täidetud lineaarvõrranditega kujul Ax = b. Arvuti kiiruse hindamiseks mõõdetakse aega, mis arvutil kulub kõikidele võrranditele lahendite leidmiseks.
Antud tulemusi kasutatakse edetabeli TOP500 loomiseks, kuhu on kantud 500 maailma võimsamat arvutit. LINPACKi testi eesmärk on anda hinnang arvuti jõudlusele eluliste ülesannete lahendamisel, kuid silmas tuleb pidada, et testi näol on tegemist lihtsustusega. See tähendab, et ükski eluline ülesanne ei koosne vaid lineaarvõrranditest. Samuti on test sattunud kriitika[21] osaliseks, sest see hindab vaid ühte tüüpi ülesannete lahendamise kiirust, jättes arvestamata, et superarvutid luuakse üldiselt kindlaid ülesandeid silmas pidades, mistõttu on superarvutite arhitektuur erinev ning alati ei ole see orienteeritud ülesandele, mis nõuab lineaartehete lahendamist. Kokkuvõtvalt, teatud ülesanded nõuavad peale lineaarvõrrandite lahendamise suuremat mälumahtu, paremat täisarvude töötlemise võimet, võimsamat sisendi-väljundi süsteemi, kiiremat andmesidet vms.
Tennessee Ülikooli arvutiteaduste professori Jack Dongarra[22] sõnul tegeletakse hetkel aktiivselt sellega, kuidas superarvutite testimist muuta nii, et see annaks arvuti omadustele laiema hinnangu. Alternatiividena on välja pakutud HPC Challenge[23] jõudlustesti ja HPCG[24] jõudlustesti, mis kasutavad kiiruse mõõtmisel ühikut TEPS (Traversed Edges Per Second)[25]. Kriitikast hoolimata on LINPACKi test jäänud kasutusse tänu sellele, et selle alusel on võimalik saada üks konkreetne number, mida on lihtne võrrelda teiste arvutite tulemustega.
Kasutusalad
Superarvutite kasutamise valdkonnad võib laias laastus grupeerida kümnendite kaupa, sest üldjoontes on igal kümnendil esile tõusnud teatud valdkonnad, kus suur arvutusvõimsus on erakordselt oluline.[26] 1970 aastad – Ilmaennustus, aerodünaamika. Arvutusvõimsuse kasv võimaldas muuta täpsemaid kliimamudeleid ning neid ka simuleerida, misläbi muutusid ilmaennustused täpsemaks ning pikenes ka ajaperiood, mille kohta on võimalik ilma suhteliselt suure täpsusega hinnata. Aerodünaamika arengu tähtsus oli kõige märgatavam lennunduses, kus tänu valdkonna arengule oli võimalik muuta lennutransport kiiremaks, sagedasemaks (seos ilmaennustuse täpsuse tõusuga) ja usaldusväärsemaks (aerodünaamika arengu kiirenemine viis lõpule ka propellermootorite asendamise reaktiivmootoritega – lennukiiruste kasv). 1980 aastad – tõenäosusanalüüs, radiatsioonikaitsete modelleerimine. Tõenäosusanalüüs on matemaatiline töövõte, mis võimaldab hinnata tulemuste jaotust vastavalt sisendite mitmekesisusele. Varem ülimalt töömahukaks peetud meetodit varem teaduses praktiliselt ei rakendatud, kuid arvutusjõudluse kasv võimaldas meetodit kasutada mitmetes teadusharudes, kaasa arvatud radiatsioonikaitsete modelleerimises, mis seoses tuumarelva arendamise ja külma sõjaga päevakorras oli. 1990 aastad – koodimurdmine. 2000 aastad – tuumasimulatsioonid. Tuumasimulatsioonide läbiviimine arvutite abil loodud mudelite abil asendas suuresti reaalsete tuumakatsetuste läbiviimist. 2010 aastad – molekulaardünaamika. Saab võimalikuks keeruka struktuuriga molekulide käitumise uurimine läbi simulatsioonide. Eeltoodud kasutusalad on pigem ülevaatlikud ning ei peegelda kogu superarvutite kasutusvaldkondade spektrit, vaid annab ülevaate erinevatest valdkondadest. Lisaks kasutatakse superarvuteid näiteks inimaju töö simuleerimiseks, kvantmehaanika mudelite uurimiseks, nafta ja gaasi leiualade otsimiseks, füüsikalise simulatsioonide läbiviimiseks, krüptoanalüüsiks jpm. Olenemata superarvutite laiast kasutusalast, on nad sageli siiski ülimalt spetsiifilised ning loodud lahendama üht kindlat ülesannet. Näiteks IBM Deep Blue, arvuti mis loodi 1996 aastal eesmärgiga mängida selle abil malet ning võita tollast male maailmameistrit Garry Kasparovit.[27]
Probleemid
Superarvutitega seotud peamiseks probleemiks võib pidada soojuse eraldumist. Nii nagu ka tavakasutuses olevate arvutite puhul, vajab ka superarvuti töötamiseks energiat, kuid seda märksa suuremal skaalal kui tavaseadmete korral. Tööks kulutatav energia eraldub pärast arvutusprotsessis kasutamist soojusena, mis omakorda võib olla kahjulik arvuti osadele. Jahutusega seotud probleemid on toonud hulga innovaatilisi lahendusi soojuse juhtimise vallas.[28] Selle parimaks näiteks on 1985 aastal ettevõtte Cray Research poolt toodetud superarvuti Cray-2, mis pidi olema töötamise ajal tervenisti sukeldatud spetsiaalsesse jahutusvedelikku floroinerti.[29] Selle arvuti jahutussüsteem, nn kosk, mis pumpas floroinerti läbi seadme, oli mõõtmetelt võrreldav arvutusüksuse endaga.[30]
Tänapäeva uuemate seadmete töötamisel eralduvat soojust püütakse kasutada muudel praktilistel otstarvetel, näiteks hoonete kütmisel. Viimase kasutusala näiteks on Zürichi Tehnoloogiainstituudis kasutatav, 2010 valminud IBM Aquasar, mille uudses kuuma vett kasutavas jahutussüsteemis ringlevat vett kasutatakse lisaks ka ülikooli ruumide kütmisel.[31] Eelnevas näites toodud kasutusviis on ühtlasi ka suurepäraseks kokkuhoiumeetodiks, sest superarvutite ülalpidamise kulud ainuüksi elektrienergia arvelt on suured – Tianhe 1A, teine 2010 aasta superarvuti, tarvitab 4,04 MW energiat tunnis[32], mis näiteks käesoleva aasta (2016) septembri elektrihindades [33] teeb jooksevkuludeks umbes 160 eurot tunnis ehk ligikaudu 1,4 miljonit eurot aastas.
Superarvutite efektiivsust mõõdetakse ühikutes FLOPSi vati kohta, st mida suurem on selles ühikus kajastuv number, seda rohkem tehteid suudab arvuti teha kasutades selleks ühe vati võrra energiat. Kusjuures asub märkimisväärne superarvuti Islandil Raykjavikis, Thor Data Centres, mis kasutab oma energiana täielikult taastuvenergiat. Sellisele saavutusele aitab kaasa ka Islandi loomupoolest külm kliima, mida saab ära kasutada arvuti jahutamiseks ning seeläbi hoida jahutusele tehtavad kulutused võimalikult väikesed.[34]
Kuna superarvutite oodatavaks tööeaks loetakse umbes kolm aastat[35], on soojusjuhtimisel veel teine oluline roll. Nimelt võivad liigse soojuse korral kahjustuda arvutiosad (tekkida külmjoodised, sulamine), mis lühendaks seadme tööiga veelgi, tähendades seejuures suuri parandamisele kuluvaid kulutusi. 1990 aastatel levima hakanud tuhandete protsessoritega superarvutite ja paralleelsüsteemide murekohaks on ka andmete ülekandmise kiirus. Insenerid peavad lisaks arvuti andmete töötlemise kiirusele pöörama tähelepanu sellele, kui kiiresti suudavad arvuti erinevad komponendid omavahel informatsiooni vahetada. Arvuti maksimaalset jõudlust silmas pidades ei tohiks tekkida olukordasid, kus mõni arvutusüksus ei tööta tänu sellele, et ta ei ole piisavalt kiiresti saanud kätte algandmeid või pole suutnud piisavalt kiiresti edasi saata juba töödeldud andmeid.
See probleem on eriti tõsine suurte hajusate paralleelsüsteemide juures, mille korral võivad erinevad arvutusüksused (teatud süsteemide puhul võivad selleks olla ka võrgus osalevad tavaarvutid) asuda geograafiliselt teineteisest väga kaugel, ning andmete ülekandmiseks ühelt komponendilt teisele kasutatakse sageli standartseid lahendusi nagu internet. Viimase kiirus oleneb jällegi suuresti geograafilisest asukohast, infrastruktuurist, võrgukoormusest jms. Korraga nii klaster- kui hajussüsteeme painavaks kitsaskohaks võib osutuda ka sobiva arvutusloogika puudumine. See tähendab, et lisaks arvuti arvutusvõimsusele tuleb tähelepanu pöörata ka sellele, millise loogika alusel toimib üldist infotöötlust juhtiva üksuse töö. Nt ei tohiks hajussüsteemis juhtida suuremahulist ülesannet aeglasemale protsessorile, eriti kui selle ülesande lõpptulem on sisendiks uuele ülesandele.
Arengutrendid
Võttes arvesse superarvutite võimsuse kasvu kiirust viimastel aastatel, on selge, et sama trend jätkub ka tulevikus. India valitsus on teatanud, et plaanib aastaks 2017 luua EFLOPSi (1 eksaflops = 1000 petaflops) piiri ületav superarvuti. [36]
Monte Carlo simulatsioonide[37] rakendamine. Superarvutite abil lahendatakse keerukaid ülesandeid, milles esineb palju vabadusastmeid. See tähendab, et on palju muutujaid, mis võivad muutuda, ning see muudab probleemi lahendamise tavavõtetega äärmiselt keerukaks. Superarvutite abil antakse igale sellisele muutujale suvaline väärtus ning uuritakse saadud tulemust, mille alusel on võimalik kogu probleemi kohta teha järeldusi. Monte Carlo simulatsioonide lahendamine nõuab väga suurt arvutusvõimet, mis tähendab, et mida suurem on arvutusvõime, seda täpsemaid tulemusi on võimalik lahendamisel saada. Seepärast ongi selleks ülesandeks superarvuti kasutamine parim lahendus.[38]
Viited
- ↑ [1]Charles Babbage (Dec. 1791 – Oct. 1871) Mathematician, philosopher and (proto-) computer scientist who originated the idea of a programmable computer.
- ↑ [2]The Godfather of Computing - Charles Babbage
- ↑ [3]birth of the computer
- ↑ [4]Programming the ENIAC
- ↑ [5]http://jva.cs.iastate.edu/
- ↑ [6]https://en.wikipedia.org/wiki/Personal_computer
- ↑ [7]Behold ATLAS, the fastest computer of 50 years ago
- ↑ [8]A Tribute to Seymour Cray
- ↑ [9]https://en.wikipedia.org/wiki/Supercomputer#History
- ↑ [10]http://www.explainthatstuff.com/how-supercomputers-work.html
- ↑ [11]boinc.berkeley.edu/
- ↑ [12]LINPACK_benchmarks
- ↑ [13]http://searchdatacenter.techtarget.com/definition/Linpack-benchmark
- ↑ [14]http://www.computerworld.com.au/article/132504/brief_history_supercomputers/
- ↑ [15]https://en.wikipedia.org/wiki/Supercomputer_operating_systems
- ↑ [16]https://en.wikipedia.org/wiki/Supercomputer_operating_systems
- ↑ [17]https://www.top500.org/news/china-tops-supercomputer-rankings-with-new-93-petaflop-machine/
- ↑ [18]https://www.quora.com/Is-a-supercomputer-just-a-huge-cluster-or-am-I-missing-something
- ↑ [19]http://www.webopedia.com/TERM/F/FLOPS.html
- ↑ [20]https://www.top500.org/project/linpack/
- ↑ [21]http://www.datacenterknowledge.com/archives/2013/07/24/supercomputing-benchmark-set-to-evolve/
- ↑ [22]https://www.top500.org/project/authors/jack-dongarra/
- ↑ [23]http://icl.cs.utk.edu/hpcc/
- ↑ [24]http://www.hpcg-benchmark.org/
- ↑ [25]https://en.wikipedia.org/wiki/Traversed_edges_per_second
- ↑ [26]https://en.wikipedia.org/wiki/Supercomputer#Applications
- ↑ [27]http://www.history.com/this-day-in-history/deep-blue-beats-kasparov-at-chess
- ↑ [28]http://www.liquisearch.com/supercomputer/hardware_and_architecture/energy_usage_and_heat_management
- ↑ [29]https://en.wikipedia.org/wiki/Fluorinert
- ↑ [30]https://en.wikipedia.org/wiki/Cray-2
- ↑ [31]http://www.extremetech.com/extreme/131259-ibm-deploys-hot-water-cooled-supercomputer
- ↑ [32]http://www.zdnet.com/article/china-builds-worlds-fastest-supercomputer/
- ↑ [33]elektri-turuhind
- ↑ [34]http://www.intelfreepress.com/news/green-supercomputer-crunches-big-data-in-iceland/39/
- ↑ [35]The NETL SuperComputer lk 2
- ↑ [36]INDIA AIMS TO TAKE THE "WORLD'S FASTEST SUPERCOMPUTER" CROWN BY 2017
- ↑ [37]http://www.wikivisually.com/lang-et/wiki/Monte_Carlo_meetod/wiki_ph_id_28
- ↑ [38]Monte_Carlo_Method