Teadusarvutused

**Teadusarvutused** on kõrget jõudlust nõudev arvutustehnika valdkond, mis hõlmab superarvutite ja arvutiklastrite kasutamist, et töödelda suuri andmemahtusid ning lahendada keerukaid arvutusprobleeme.

Selle tehnoloogia realiseerimiseks rakendatakse paralleelarvutuste kontseptsiooni, kus pannakse suur hulk protsessoreid samaaegselt sama ülesannet lahendama. Sedasi on võimalik ka kõige komplekssemaid probleeme lahendada.

Terminid, mis võivad sassi minna on teadusarvutused, superarvutused ning superarvutid. Teadusarvutus on kõige üldisem termin, mis hõlmab kõige lihtsamalt võttes paralleelarvutuste sooritamist arvutiklastrites. Samuti tegelevad ka superarvutid teadusarvutustega, kuid superarvutite puhul on tegemist kõige võimekamate teadusarvutusi sooritavate arvutussüsteemidega, mille võimekust saab mõõta peta- või isegi eksafloppides, ning neid arvutusi võib nimetada superarvutusteks. 

## Arhitektuur
Teadusarvutusi sooritavates süsteemides on eraldiseisvad sisselogimise sõlmed, arvutusi sooritavad sõlmed ning andmete salvestamise sõlmed, mis ühendatakse üle võrgu kokku klastriks, rakendades võrkandmetöötlust. Arvutusi sooritavad sõlmed võivad olla omakorda jaotatud universaalsemateks sõlmedeks ja spetsialiseeritud sõlmedeks, millel on võimekus konkreetseid ülesandeid hästi lahendada. Sellega tagatakse, et probleeme lahendataks optimaalselt ning ükski sõlm poleks liigselt koormatud.

Veelgi sügavamale minnes võib teadusarvutuste süsteemidest leida erinevaid optimeerivaid ja juhtivaid osiseid, mille eesmärk on probleeme veelgi efektiivsemalt lahendada. Näiteks võib loetleda teadusarvutuste spetsiifiline ressursijaotaja, mis kontrollib ressursside jagamist sõlmede vahel või siis andmete halduse tarkvara, mis optimeerib andmete liikumist erinevate riistvarade ja failisüsteemide vahel.

Iga teadusarvutusi sooritav süsteem ehitatakse vastavalt selle kindlale kasutusvajadusele, mistõttu on erinevaid lisakomponente erinevates süsteemides, mis on mõeldud spetsiifiliste nõudluste täitmiseks. Mõned sellised komponendid on näiteks:

* InfiniBand kommutaator;
* Andmehaldustarkvara;
* FPGA-d;
* Visualiseerimise sõlmed;
* GPU-kiirendatud süsteemid.

Traditsiooniliselt kasutatakse teadusarvutuste süsteemides füüsilisi andmekandjaid, kuid paindlikkuse ja spetsiifiliste nõuete tõttu on ka rakendatud pilve andmete salvestamist või siis hübriidset lahendust nende kahe vahel.

Teadusarvutuste süsteemi realiseerimiseks eristatakse 3 põhilist arhitektuurilist lahendust.

### Paralleelarvutused
Selle lahenduse puhul pannakse mitu sõlme töötama samaaegselt. Eesmärk on jagada suurem probleem väiksemateks tükkideks, mida iga sõlm saab paralleelselt lahendada, mille tulemusel saab ülesanne kiiremini lahendatud.

### Klasterarvutused
Klasterarvutuste lahendust realiseerides moodustavad eraldiseisvad sõlmed ühe arvutava üksuse, kus on kõikide sõlmede ressursid kombineeritud. Nõnda saab käsitleda seda süsteemi kui väga võimsat arvutit, kui kõik sõlmed eraldiseisvana ei pea märkimisväärset arvutusvõimsust omama.

### Võrkandmetöötlus
Võrkandmetöötlust kasutav süsteem koosneb geograafiliselt eraldiseisvatest süsteemidest, mis moodustavad kokku virtuaalse teadusarvutusi sooritava süsteemi. See hõlmab nii elemente klasterarvutustest kui ka paralleelarvutustest ning seda kasutavad peamiselt suurkorporatsioonid, kellel on võimekust pidada üleval andmekeskusi maailma eri paigus. 

## Teadusarvutused üle pilve
Teadusarvutuskeskuste rajamine on kallis, aeganõudev ning nõuab spetsiifilisi teadmisi. Seetõttu pakutakse tava- ja ärikasutajatele aina enam võimalust osta teadusarvutuste süsteemide võimekust sisse üle pilve. Mõned teenused, mida pakutakse, on näiteks andmete hoiustamine, võrgulahendused ja kompleksete arvutuste sooritamine.

Pilveüleste teadusarvutuste teenustega on võimalik rakendada enda kasuks väga kiiret ja võimekat arvutusjõudlust, mida enda arvuti või serveriga poleks kunagi võimalik taastoota. Samuti kuna teadusarvutuste süsteemid on klastrid, siis mõne sõlme väljalangemise korral on võimalik tööd siiski jätkata.

## Kasutusvaldkonnad
Järgnevalt loetletakse mõned valdkonnad, kus kasutatakse teadusarvutuste võimekust.

### Teadus
Keerulisemate ja täpsemate mudelite analüüs (näiteks füüsikas või keemias) nõuab sedavõrd rohkem arvutusvõimekust, mistõttu rakendatakse aina enam teadusarvutusi akadeemilises töös.

### Meteoroloogia
Meteoroloogias ehk ilmastikuteaduses ennustatakse ilma läbi atmosfääris toimuvate kaootiliste protsesside kasutades keerulisi lähendeid ning algoritme. Teadusarvutuste süsteemidega töödeldakse suuri andmehulki ning neid algoritme läbi, et ennustada ilma käitumist.

### Meditsiin
Meditsiini arengu tõttu tuleb aina enam selles valdkonnas andmemahukaid töid teha. Näiteks on leidnud teadusarvutused rakendust inimese genoomi järjestuse arvutamisel. Kui esimene inimese genoomi järjestuse arvutus võttis aega 13 aastat, siis 2018. aastal suudeti seda teha kõigest 19,5 tunniga.

### Inseneeria
Andmerohkete simulatsioonide läbiviimiseks kasutatakse teadusarvutusi, et uusi insenerlahendusi katsetada. Nõnda on näiteks Microsofti Azure HPC võimekust kasutatud autonoomsete sõidukite otsuse vastuvõtmise protsessi arendamiseks ja erinevate õnnetuste läbimängimise simuleerimiseks.

### Majandus
Majanduses tuleb ettearvamatus keskkonnas võtta vastu kiireid, kuid kaalutletud otsuseid. Kuivõrd analüüs vähendab riskimäära, siis on asutud majanduses kasutama teadusarvutusi, et püsida konkurentsis ning arendada innovatsiooni.

## Teadusarvutuste teenusepakkujad
### Euroopa kõrgjõudlusega andmetöötluse ühisettevõte

Euroopa kõrgjõudlusega andmetöötluse ühisettevõte ehk EuroHPC on 2018. aastal loodud juriidiline isik, mille eesmärk on edendada Euroopa Liidu teadusarvutuste võimekust ja konkurentsivõimet. Läbi selle arendamise soovitakse täiustada liikmesriikide teadmisi ja oskusi meditsiini, meteoroloogia, kliimamuutuse ja julgeoleku valdkondades.

Ühisettevõtte alla kuuluvad Euroopa Liidu liikmesriikide ühed võimekaimad superarvutid, milleks on LUMI, LEONARDO, MARENOSTRUM 5, MELUXINA, KAROLINA, DISCOVERER, VEGA ja DEUCALION. Nende kõikide arvutite võimsused on mõõdetavad petafloppides ning mitmed neist kuuluvad superarvutite edetabeli TOP500 esikümnesse. Tootmises on ka superarvuti JUPITER, millest saaks EuroHPC esimene eksaflop arvutusvõimekusega superarvuti.

EuroHPC teadusarvutuste võimekusele on võimalik ligi pääseda Euroopa Liidu liikmesriikide liikmetel. Selleks tuleb esitada mõjuva põhjusega taotlus, mida rahuldatakse eelkõige teaduslikel, tööstuslikel ning avaliku sektori nõudluse eesmärkidel.

### Microsoft Azure HPC
Azure HPC on Microsofti üle pilve pakutav teenus, mis pakub teadusarvutuste võimekust sisseostjatele. Nende andmekeskuseid on üle 100 ning üle 64 erinevas asukohas, mistõttu on ligipääs globaalne ning ressursihulk kaubanduslikult teenindatav. Azure teadusarvutus võimekust on kasutatud näiteks tõlkimiste, tehisarude ja isesõitvate autode arvutusprobleemide lahendamiseks.

### IBM Cloud
IBM Cloud on üle saja erineva lahenduse pakkuv teadusarvutuste teenus, mis on üks suurimaid sellelaadseid teenusepakkujaid. Nende süsteemides on 4. generatsiooni Inteli Xeon protsessorid, mis on mõeldud ka kõige arvutusnõudlikumate simulatsioonide ja mudelite loomiseks. Eesmärgiks on neil viia teenuse "aeg turule" (*time to market*) võimalikult madalaks, mistõttu pakuvad nad IaaS ja spetsiifilist teadusarvutuste tarkvara teenuseid.

## Teadusarvutused Eestis
### ETAIS
ETAIS ehk Eesti Teadusarvutuste infrastruktuur on taristu, mis tegeleb Eesti arvutusvõime konkurentsivõime tõstmisega ning Eestis olevate teadusarvutuste süsteemide ühtlustamise ja integreerimisega. Nende töö tulemusel on hakatud loobuma eraldiseisvate klastrite loomisest ja pidamisest, sest kuluefektiivsem on teenust sisse osta. ETAIS-i partnerid on Tartu Ülikool, Tallinna Tehnikaülikool, KBFI ja HARNO, kelle teenuseid saab kasutada ETAISi hallatud keskkonna kaudu.

### Tartu Ülikooli HPC keskus
2008. aastal loodud Tartu Ülikooli HPC keskus on üks Eesti teadusarvutuste võimekuse ja arengu eestvedajatest. Sealset võimekust on võimalik kasutada nii ülikooli töögruppidel kui ka välistel huvilistel. Samuti pakutakse sealt ligipääsu soomlaste võimsale superarvutile LUMI.

Tartu Ülikooli HPC klastri spetsifikatsioon on järgnev:

* 135 sõlme (2 Intel Xeon E5-2660v2 protsessorit, 64 GB RAM, 1 TB HDD);
* 20 sõlme (2 AMD 7702 protsessorit, 1 TB RAM);
* 4 mälu serverit (2 Intel Xeon Gold 6138 protsessorit, 1 TB RAM, 7 TB kohalik SSD);
* 12 arvutusi sooritavat sõlme (2 Intel Xeon Gold 6138 protsessorit, 256 GB RAM, 7 TB kohalik SSD);
* 2 spetsialiseeritud sõlme (2 Intel Xeon E5-2660v2 protsessorit, 128 GB RAM, 2 TB kohalikku salvestusruumi);
* Umbes 9 PB InfiniBand standardiga salvestusruumi;
* 50 Nvidia V100/A100 GPU-d.

### IT Kolledži teadusarvutuste keskus
IT Kolledži teadusarvutuste keskus on Tallinna Tehnikaülikooli alluvuses olev keskus, kus hallatakse kohalikke teadusarvutuste ressursse. Keskuses on kolm klastrit: 2019. aastal paigaldatud HPC2 klaster, GPU server ja 2013. aastal loodud HPC1 klaster.

HPC2 klastri spetsifikatsioon on järgnev:

* 32 sõlme (2 Intel Xeon Gold 6148 protsessorit, 96 GB RAM, 800 GB HDD);
* InfiniBand standard;
* 20 TB salvestusruumi.

HPC1 klastri spetsifikatsioon on järgnev:

* 232 sõlme (2 Intel Xeon E5-2630L, 48 GB RAM, 800 GB HDD), neist kuskil 100 sõlme on veel töökorras;
* mälu server (1 TB RAM);
* InfiniBand standard;
* 144 TB salvestusruumi;
* GPU server (2 Nvidia Tesla K20Xm videokaarti).

## Viited