Tikimasi, 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.
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.
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
|