Belaukiant eksanašiųjų skaičiavimų Spausdinti El. paštas
chip.jpgTikimasi, kad naujos kartos didelio našumo lygiagrečiųjų skaičiavimų sistemos iki 2020 m. pasieks eksaskalės našumą, tai yra galės atlikti 1018 slankaus kablelio operacijų per sekundę. Neabejojama, kad eksaskalės skaičiavimų reikia norint tiksliai modeliuoti sudėtingas sistemas, ypač apimant kelis fizikinius modelius ar kelis mastelius, spręsti atvirkštinius uždavinius ar optimizuoti modeliuojamas sistemas.

Moksliniuose skaičiavimuose kompiuterių našumas matuojamas atliekamų slankaus kablelio operacijų (pavyzdžiui, sumavimas, daugyba) skaičiumi per sekundę. Šį kriterijų žymėsime anglišku trumpiniu flop/s (angl. FLoating-point OPerations per Second). Teorinį viršutinį kompiuterio našumo rėžį galima įvertinti sudauginus procesorių ar branduolių skaičių, taktinį dažnį ir atliekamų slankaus kablelio operacijų skaičių per vieną procesoriaus taktą. Realiai tokio našumo nepavyksta pasiekti, nes skaičiavimuose reikia atlikti ne tik slankaus kablelio operacijas, bet ir, pavyzdžiui, nuskaityti iš atminties duomenis ir išsaugoti rezultatus. Prasmingam kompiuterių našumui įvertinti naudojami programiniai testai, pavyzdžiui, didelio našumo „Linpack“ (www.netlib.org/benchmark/hpl ) testas, pagrįstas tiesinių lygčių sistemų sprendimu. Nors tiesinės lygčių sistemos sprendžiamos ne visais atvejais, tačiau šis testas faktiškai yra laikomas standartiniu ir naudojamas didelio našumo kompiuterių reitingams TOP500 (www.top500.org ) sudaryti.

TOP500 sąraše kompiuteriai reitinguojami pagal išmatuotą našumą sprendžiant „Linpack“ testą. Be numerio reitinge skelbiamas gamintojas, jo nurodytas kompiuterio tipas, įstaiga savininkė, jos šalis, instaliavimo metai, taikymo sritis, procesorių (branduolių) skaičius, pasiektas maksimalus našumas sprendžiant „Linpack“ testą, teorinis viršutinis kompiuterio našumo rėžis, uždavinio dydžiai maksimaliam ir pusei maksimalaus našumo pasiekti, elektrinė galia. Reitingai skelbiami nuo 1993 m. du kartus per metus – birželio ir lapkričio mėnesiais „Superkompiuterių“ konferencijų metu. Reitinge dominuoja JAV, Kinijoje, Japonijoje, Jungtinėje Karalystėje, Prancūzijoje ir Vokietijoje instaliuoti didelio našumo kompiuteriai. Taip pat 2011 m. lapkričio mėnesio reitinge yra 6 Lenkijoje, 5 Rusijoje, 3 Švedijoje, 2 Danijoje ir 1 Suomijoje instaliuoti didelio našumo kompiuteriai.

flops_taisytas.jpg






















Didelio našumo kompiuterių reitingo TOP500 didžiausias (žalia spalva), mažiausias (mėlyna) ir suminis (raudona) kompiuterių našumas.

TOP500 reitingo didžiausias (žalia spalva), mažiausias (mėlyna) ir suminis (raudona) kompiuterių našumas pateiktas 1 pav. Vertikali ašis pateikta logaritmine skale, akivaizdus eksponentinis našumo augimas. Priminsime, kad T žymimas priešdėlis „tera“ reiškia trilijoną 1012, P žymi „peta“ – 1015, E – „eksa“ – 1018. Tiesėmis atvaizduotos tiesinės regresijos logaritminėje skalėje. Didžiausias reitingo našumas kyla laiptuotai, tačiau mažiausias ir suminis yra gerai aproksimuoti tiesėmis logaritminėje skalėje. Galima apskaičiuoti, kad didžiausias ir mažiausias reitingo našumas padvigubėja kas 13 mėnesių, o suminis – kas 13 su puse. Taigi šis augimas yra greitesnis negu mikroprocesorių našumo dvigubėjimas kas 18 mėnesių, kuris išvedamas iš G. Mūro (G. Moore) dėsnio, nusakančio, kad tranzistorių skaičius integriniame grandyne padvigubėja kas dvejus metus, ir įvertinus, kad dėl mažėjančių tranzistorių matmenų gali būti didinamas procesorių taktinis dažnis. Greitesnį augimą negu dvigubėjimas kas 18 mėnesių sukelia procesorių skaičiaus didinimas.

Laiko tarpas tarp to pačio našumo būnant didžiausiu ir mažiausiu TOP500 reitinguose yra 7–8 metai, našiausias reitingo kompiuteris po 6–9 metų nepatektų į reitingą (1 pav.). Akivaizdžiai pastovios tendencijos per pastaruosius 19 metų, kai skelbiamas šis reitingas. Jei šios tendencijos išliks, iki 2020 m. bus sukurtas eksaskalės kompiuteris, kurio našumas bus bent 1 Eflop/s. Aišku, norint pasiekti tokį našumą, reikia įveikti daug technologinių iššūkių.

Šiuo metu pats našiausias kompiuteris TOP500 reitinge yra Japonijoje instaliuotas „K“ kompiuteris. Angliškai K raidės vardas tariamas „kei“, o japoniškai „kei“ reiškia 1016 – 10 petavienetų. Taip kompiuteris pavadintas dėl siekio pasiekti 10 Pflop/s našumą. Šiame kompiuteryje yra 705 024 procesorių branduolių, pasiektas našumas 10,51 Pflop/s, teorinis viršutinis šio kompiuterio našumo rėžis yra 11,28 Pflop/s = 705024 branduoliai x 2 GHz procesorių taktinis dažnis x 8 slankaus kablelio operacijos per vieną taktą, elektrinė galia 12,66 MW. Šio kompiuterio našumo efektyvumas yra 93 % = 10,51 Pflop/s/ 11,28 Pflop/s. Tai vienas didžiausių našumo efektyvumų reitinge – vidutinis kompiuterių be skaičiavimų akceleratorių (grafinių skaičiavimų įrenginių sutrumpintai vadinamų GPU) našumo efektyvumas yra 68 %, o su akceleratoriais – 46 %.

Detaliau išanalizavus TOP500 reitingų duomenis galima pastebėti, kad 1993–1997 m. reitinguose nesikeitė nei mažiausieji ir didžiausieji procesorių skaičiai nei mažiausieji ir didžiausieji taktiniai dažniai, o vidutiniai šių kriterijų įverčiai reitinguose buvo mažiausi 1995 m. Vadinasi, nuo 1993 m. iki 1997 m. kompiuterių našumo augimą lėmė procesorių architektūros tobulinimas didinant slankaus kablelio operacijų, atliekamų per vieną procesoriaus taktą, skaičių. Procesorių taktinis dažnis greičiausiai augo 2000–2004 m., taip šiuo laikotarpiu labiausiai įtakodamas kompiuterių našumo augimą. Tačiau vėliau taktinio dažnio augimas sulėtėjo, didžiausias vertes pasiekė 2009 m., o vėliau net šiek tiek sumažėjo.

eesi-map.jpg



















Europos eksaskalės programinės įrangos iniciatyvos (EESI) projekte atstovaujamos institucijos.

Procesorių skaičius reitingo kompiuteriuose iki 2004 m. augo lėtai, o didžiausias reitingo kompiuterių procesorių skaičius nuo 1999 m. pabaigos iki 2004 m. vidurio buvo pastovus – 9632 procesoriai. Beje šis procesorių skaičius priklausė tam pačiam didelio našumo kompiuteriui. Tai Sandia nacionalinėse laboratorijose JAV instaliuotas ASCI Red. Jis pirmasis 1997 m. peržengė 1 Tflop/s ribą, pasiekęs 1,068 Tflop/s našumą su 7264 procesoriais. Tais pačiais metais jis buvo išplėstas iki 9152 procesorių, o 1999 m. iki 9472 ir 9632 procesorių pasiekdamas 2,379 Tflop/s našumą. Toks šis kompiuteris išliko reitinguose iki pat 2005 m. pabaigos ilgai būdamas daugiausia procesorių turinčiu kompiuteriu. Nuo 2004 m. procesorių (branduolių) skaičius auga sparčiau ir daugiausia branduolių šiuo metu yra jau minėtame K kompiuteryje: jų skaičius nuo 9632 padidėjo 73 kartus. Taigi galima išskirti tris laikotarpius pagal labiausiai kompiuterių našumą didinančius faktorius: 1) per vieną procesoriaus taktą atliekamų slankaus kablelio operacijų skaičiaus didinimas, 2) procesorių taktinio dažnio didinimas, 3) procesorių (branduolių) skaičiaus didinimas. Bent artimiausioje ateityje labiausiai tikėtinas tolesnis branduolių skaičiaus didinimas didelio našumo kompiuteriuose.

Teoriškai gal ir būtų galima pagaminti ir sujungti 100 K kompiuterių į vieną eksaskalės kompiuterį. Tam reikėtų ne tik milžiniško pastato, bet ir 1266 MW elektrinės galios, t. y. beveik tiek pat kiek planuojamas Visagino atominės elektrinės reaktoriaus galingumas – 1350 MW. JAV mokslininkai naudoja apytikslį per metus suvartojamos elektros energijos kainos įvertį – 1 MW elektrinės galios atitinka 1 mln. JAV dolerių per metus. Vadovaujantis lietuviškomis elektros energijos kainomis galima laikyti, kad 1 MW elektrinės galios apytiksliai atitinka 1 mln. eurų per metus. Taigi, jei 1266 MW elektrinės galios kompiuterio savininkas nepasistatytų specialiai jam atominės elektrinės ir pirktų elektros energiją dabartinėmis kainomis, per metus vien už elektrą reikėtų sumokėti apie 4 mlrd. litų. Net ir pačioms ambicingiausioms šalims tokios metinės išlaidos yra reikšmingos.

Numatoma eksaskalės kompiuterių techninės įrangos kaina yra 200 mln. JAV dolerių ir 20 mln. metiniams mokesčiams už elektrą (taigi keliamas tikslas neviršyti 20 MW elektrinės galios). Šiuo metu prognozuojamos dvi didelio našumo kompiuterių vystymosi kryptys link eksaskalės kompiuterių. Viena kryptis – tai masiškai lygiagrečiosios sistemos, kuriose numatomas silpnas heterogeniškumas, milijonas skaičiavimo mazgų su tūkstančio branduolių procesoriais. Kita kryptis – didelio našumo skaičiavimų klasteriai, kuriuose numatomas stiprus heterogeniškumas, šimtas tūkstančių skaičiavimo mazgų su dešimties tūkstančių branduolių procesoriais su akceleratoriais. Abiem atvejais planuojama, kad eksaskalės kompiuteryje bus milijardas branduolių. Nors planuojama, kad branduolių skaičius padidės daugiau negu tūkstantį kartų, manoma, kad atminties dydis ir pralaidumas padidės mažiau negu šimtą kartų. Dėl ypač didelės apimties techninės įrangos klaidos sistemoje gali tapti labai dažnos.

Net ir įvertinant techninius iššūkius kuriant eksaskalės kompiuterius, plačiai pripažįstama, kad pagrindinė problema eksaskalės skaičiavimams yra ne techninė įranga, o lygiagrečioji programinė įranga, kurios plėtrai iki šiol buvo skiriamas nepakankamas dėmesys. Eksaskalės kompiuterių sudėtingumas, hierarchinė struktūra ir heterogeniškumas kels didelių iššūkių programinei įrangai kurti ir plėtoti. Kaip sukurti programinę įrangą, efektyviai naudojančią milijardą procesorių branduolių, kad kiekvienas jų didžiąją dalį laiko naudingai skaičiuotų, o ne lauktų kitų, ypač kai jie heterogeniniai – nevienodi, o juos jungiantis tinklas hierarchinis – jo pralaidumas priklauso nuo to, ar procesoriai vienoje plokštėje, ar vienoje spintoje, ar toli vienas nuo kito? Kaip priversti milijardą procesorių kartu spręsti vieną užduotį?

Taigi kurti programas tokiems didelio našumo kompiuteriams bus labai sudėtinga. Tai pripažįstant prieš kelis metus inicijuotas tarptautinis eksaskalės programinės įrangos projektas IESP (angl. International Exascale Software Project, www.exascale.org). Europos atsakas į tarptautinę iniciatyvą buvo EESI (angl. European Exascale Software Initiative – Europos eksaskalės programinės įrangos iniciatyva) projektas (www.eesi-project.eu), prasidėjęs 2010 m. ir pateikęs Europos Komisijai ataskaitą 2011 m. spalį, tuo pačiu metu pristatydamas rezultatus baigiamojoje konferencijoje Pasaulio prekybos centre Barselonoje. Projektas buvo finansuojamas Europos Sąjungos pagal 7BP specifinės programos „Pajėgumai“ mokslinių tyrimų infrastruktūros tematiką.

Pagrindiniai EESI projekto tikslai buvo sukurti Europos viziją ir kelio gaires sprendžiant mokslinių skaičiavimų iššūkius naujos kartos kompiuteriuose (daugelio Pflop/s dabar ir Eflop/s iki 2020 m.). Projekto uždaviniai buvo ištirti Europos stiprybes ir silpnybes tarptautiniame didelio našumo skaičiavimų kraštovaizdyje, identifikuoti prioritetines veiklas, identifikuoti Europos konkurencingumą plečiant petaskalės ir eksaskalės skaičiavimų sprendimus ir taikymą, ištirti ir pasiūlyti švietimo ir mokymų programas ateities kartos skaičiavimų mokslininkams, identifikuoti ir stimuliuoti pasaulinio bendradarbiavimo galimybes.

Pagrindinė EESI veikla buvo organizuota 8 darbo grupėse. Pusė darbo grupių buvo skirta eksaskalės taikymui identifikuoti: industriniai ir inžineriniai taikymai; klimatas ir geomokslai; fundamentiniai mokslai (chemija, fizika); gyvybės ir sveikatos mokslai. Kita pusė darbo grupių buvo skirta įgyvendinančioms technologijoms: techninės įrangos plėtros gairės ir ryšiai su tiekėjais; programinės įrangos ekosistema; mokslinių skaičiavimų programinės bibliotekos, programinė įranga ir algoritmai; mokslinės programinės įrangos inžinerija. Man teko garbė būti pakviestam į mokslinių skaičiavimų programinių bibliotekų, programinės įrangos ir algoritmų darbo grupę. EESI projekte dalyvavo apie 150 dalyvių iš apie 100 įstaigų. Europos žemėlapis su pažymėtomis dalyvaujančiomis šalimis ir įstaigų logotipais pateiktas 2 pav. Kaip matyti žemėlapyje, projekte dominuoja Vakarų Europos institucijos, Lietuva buvo vienintelė atstovaujama iš nuo 2004 m. Europos Sąjungą papildžiusių narių.

Nors dar nėra žinomos ateities techninės įrangos detalės, yra tikra, kad lygiagretumo lygis žymiai didės, kompiuteriai bus sudėtingesni ir labiau heterogeniniai, hierarchinė didelio našumo sistemų struktūra bus dar ryškesnė negu šiuolaikinių petaskalės sistemų. Dėl to reikės reikšmingai daugiau pastangų ir žmogiškųjų išteklių sprendžiant kylančius algoritmų ir programinės įrangos sudėtingumo iššūkius.

Šiame kontekste verta paminėti ir COST veiklą IC0805: „Atviras Europos tinklas didelio našumo skaičiavimams sudėtingose aplinkose“ (www.complexhpc.org), vykdomą 2009–2013 m. Šios veiklos pagrindinis tikslas yra plėtoti integruotą požiūrį sprendžiant heterogeninių ir hierarchinių sistemų didelio našumo skaičiavimams iššūkius. Veikla sukoncentruota keturiose darbo grupėse: skaitinė analizė hierarchinėse, heterogeninėse ir daugelio branduolių sistemose; skaičiavimų ir pranešimų siuntimo bibliotekos efektyviam sudėtingų sistemų naudojimui; algoritmai ir įrankiai programų išdėstymui ir vykdymui paskirstytose ir heterogeninėse sistemose; hierarchinių-heterogeninių sistemų taikymas. Veikloje dalyvauja mokslininkai iš 24 Europos šalių. Aktyviai dalyvauja Lietuvos mokslininkai: iš 30 veiklos finansuotų trumpalaikių mokslinių vizitų 4 buvo Lietuvos mokslininkų vizitai į užsienio mokslo centrus. Be to, buvo ir atvykstanti į Lietuvą mokslininkė.

TOP500 reitingo sudarytojai yra pastebėję, kad nešiojamų kompiuterių našumas nuo mažiausiojo našumo reitinge atsilieka 8–10 metų. Džiugina tai, kad asmeninių stalinių ir nešiojamųjų kompiuterių našumas greitai auga. 2020 m. galima tikėtis 1 Pflop/s našumo asmeninių kompiuterių. Tačiau asmeninių kompiuterių procesorių taktinis dažnis beveik pasiekė maksimalų didelio našumo kompiuterių procesorių dažnį ir jau nėra didinamas. Didelio našumo kompiuteriuose naudojami tokie patys arba net paprastesni procesoriai už naudojamus asmeniniuose kompiuteriuose. Taigi norint didinti ir asmeninių kompiuterių našumą belieka naudoti daugiau procesorių ar jų branduolių. Jau įprasti stalinių ir nešiojamųjų kompiuterių procesoriai su 2–4 branduoliais, o grafinių skaičiavimų įrenginiuose branduolių yra dar žymiai daugiau. Nusipirkęs naują kompiuterį jau negali kaip anksčiau tikėtis, kad tos pačios programos skaičiuos greičiau. Reikia programų, pritaikytų atlikti skaičiavimus lygiagrečiai – iš karto keliuose procesoriuose ir branduoliuose. Taigi lygiagretieji skaičiavimai neišvengiamai ateina ant kiekvieno iš mūsų darbo stalo. Tik ar mes tam pasiruošę?

Dr. Julius Žilinskas

 
< Atgal   Pirmyn >