211service.com
Asmeninių superkompiuterių pažadas
Praėjusią savaitę „Intel“ paskelbė apie mokslinių tyrimų projektą, kuris privertė geikus šokinėti iš džiaugsmo: pirmasis programuojamas teraskalės superkompiuteris mikroschemoje. Bendrovė pademonstravo vieną lustą su 80 branduolių arba procesorių ir parodė, kad šiuos branduolius galima užprogramuoti taip, kad būtų galima sutraiškyti skaičių trilijono operacijų per sekundę greičiu, o tai žinoma kaip teraflopas. Lustas yra maždaug didelio pašto ženklo dydžio, tačiau jo skaičiavimo greitis yra toks pat kaip ir superkompiuterio, kuris 1996 m. užėmė apie 2000 kvadratinių pėdų ir sunaudojo apie 1000 kartų daugiau galios.

Ne taip super: 1996 m. superkompiuteris (viršuje kairėje), galintis apskaičiuoti trilijoną operacijų per sekundę, užėmė apie 2000 kvadratinių pėdų ir sunaudojo 500000 vatų. Neseniai „Intel“ pristatė 80 branduolių tyrimų lustą (apačioje dešinėje), kuris pasiekia tą patį skaičiavimo greitį, bet yra didelio pašto ženklo dydžio ir naudoja apie 65 vatus.
Šis tyrimų lustas yra vienas iš pirmųjų „Intel“ žingsnių masiškai daugiagyslių technologijų link, sako Nitin Borkar, „Intel“ inžinerijos vadovas ir laboratorijos projektų vadovas. Jis sako, kad tikslas yra naudoti šį lustą norint išbandyti metodus, kurie galėtų padaryti daug branduolių technologijas greitesnes, efektyvesnes ir, labiausiai bauginančias, lengvai programuojamas. Šie metodai bus panaudoti būsimiems produktams, kurie gali pasirodyti per penkerius–dešimt metų, jei viskas bus gerai.
Tačiau beveik visi kompiuterių pramonės inžinieriai sutinka, kad sukurti vartotojų kompiuterius su šimtais branduolių nebus lengva. Tiesą sakant, daugelis net nėra tikri, kad tai gali būti padaryta. Ryškiausias iššūkis bus rasti būdą, kaip visiškai pakeisti programinę įrangą, kad programos galėtų pasinaudoti daugybe branduolių. Tai apima programinės įrangos kūrėjų mokymą, kaip rašyti kodą kelių branduolių įrenginiams (užduotis, žinoma kaip lygiagretusis programavimas), ir naujų įrankių, leidžiančių tiksliai ir efektyviai koduoti, kūrimą.
Tyrėjai ir vizionieriai jau galvoja, kaip geriausiai panaudoti šiuos superkompiuterių lustus. „Intel“ mano, kad atpažinimas, kasyba ir sintezė ( RMS ) programos bus pagrindinės. Kartu šios technologijos leistų realiu laiku versti kalbą mobiliaisiais telefonais, ieškoti vaizdo įrašų realiuoju laiku pagal ištartą frazę ar vaizdą ir geresnes rekomendacijų sistemas apsipirkti, planuoti maistą ir net sveikatos priežiūrą.
Kad šios programos taptų realybe, kompiuterių pramonė patirs tam tikrų augančių skausmų, sako Davidas Pattersonas , informatikos profesorius Kalifornijos universitete Berklyje. (Jis ir jo kolegos turi a Interneto svetainė kurioje vyksta diskusijos ir pateikiama balta knyga bei vaizdo įrašai šia tema.) Esame pradiniame šio milžiniško pokyčio etape, sako Pattersonas. Jis apibūdina kryptį, kuria pramonė nusprendė eiti – atsisakoma našumo apribotų, vieno branduolio procesorių, skirtų kelių branduolių technologijoms – kaip „Sveika Marija“ perdavimą futbolo žaidime. Lustų gamintojai į lustą įdeda vis daugiau branduolių, tačiau programinės įrangos inžinieriai nėra tikri, ar gali neatsilikti. Pattersonas sako, kad tai įdomus laikas tyrinėtojams, jei galime išsiaiškinti, kaip sugauti perėją.
Kadangi vieno branduolio lustų laikrodžio dažnis – procesoriaus greičio matas – nuolat didėjo dešimtmečius, programuotojai galėjo išvengti lygiagretaus programavimo iššūkio, sakoma. Džonas Šalfas , kompiuterių mokslininkas Lawrence Berkeley laboratorijoje, Berklyje, Kalifornijoje. Jų programos veiktų greičiau, jei jie tik lauktų 18 mėnesių, kol pasirodys naujos kartos lustas, sako jis. Tačiau maždaug 2002 m. tapo akivaizdu, kad šie vieno branduolio lustai sunaudoja per daug energijos ir nesugebės išlaikyti greičio padidėjimo. Taigi pramonė nusprendė pakeisti taktiką: užuot bandę išgauti daugiau greičio iš vieno procesoriaus, lustų gamintojai tiesiog pridėjo kitą procesorių. Dabar, kai negalime padidinti laikrodžio dažnio, turime susidurti su lygiagretumu, sako Shalf, ir geriausias būdas apibūdinti pramonės reakciją yra plačiai paplitusi panika.
Kas tokio baisaus lygiagrečiame programavime? Pirmiausia jis buvo priskirtas didelio našumo kompiuterių (HPC) specialistams, kurie kuria programinę įrangą, sprendžiančią konkrečias problemas, veikiančias įrenginiuose su tūkstančiais ir milijonais branduolių. Programinė įranga gali sukurti klimato kaitos modelius arba numatyti baltymų susilankstymą, tačiau ji skirta vienai sunkiai atliekamai užduočiai, o ne vartotojų, norinčių kalbėtis su kompiuteriu, žiūrėti didelės raiškos vaizdo įrašus ir sekti savo informaciją, užgaidoms. senstančių tėvų per pusę šalies.
Tiksliau, lygiagrečios programos turi būti parašytos taip, kad užduotys galėtų būti tinkamai pasidalytos tarp procesorių. Tai sunku, nes ne visose programose natūraliai yra komponentų, kuriuos galima atskirti; kartais, kai jos yra atskirtos, užduotys atliekamos skirtingu laiku ir sukuria kliūtis. Be to, kyla problemų dėl bendrų išteklių: jei programai reikia pasiekti duomenis, esančius atmintyje, kurį dalijasi dešimtys ar šimtai kitų branduolių, programa gali sulėtėti arba užstoti. Be to, lygiagrečių programų derinimas gali būti košmaras, nes dažnai sunku pasikartoti klaidą, todėl sunku rasti problemos šaltinį.
Tačiau net ir nepaisant visų iššūkių yra vilties, sako Shalf. HPC mokslininkai sukūrė lygiagrečių algoritmų portfelius, kurie gali būti naudingi vartotojų lygiagrečioms programoms. Be to, rinkoje jau yra daugybė kelių branduolių produktų ir jie pateikia užuominų apie geriausius metodus architektūros ir programavimo požiūriu. Pavyzdžiui, grafikos įmonė NVIDIA ką tik išleido komercinį lustą su 128 branduoliais, skirtą grafikos atvaizdavimui tokioms programoms kaip vaizdo žaidimai. Daugelis branduolių yra bendros paskirties, o tai reiškia, kad juos galima užprogramuoti atlikti daugybę skirtingų į grafiką orientuotų užduočių. Alternatyva yra, kad šerdies instrukcijos būtų prijungtos prie lusto.
Be to, „Intel“, AMD ir kiti bendradarbiauja su akademiniais tyrėjais, siekdami sukurti lygiagrečio programavimo sistemą, dėl kurios būtų galima susitarti. Vienas iš būdų, kuris atrodo daug žadantis, vadinamas operacijų atmintimi Krste Asanovič MIT kompiuterių mokslo profesorius. (Žr. Problema su kelių branduolių kompiuteriais.) Naudojant operacijų atmintį, lusto architektūros ir kodo derinį, programuotojams bus leista mąstyti nuosekliau, kaip jie daro programuodami vieno branduolio sistemas, ir leisti sistemai užtikrinti lygiagretumą. Asanovičius sako, kad programuotojai rašo instrukcijas, kurios prasideda ir baigiasi linijiškai, tačiau užkulisiuose jos veikia lygiagrečiai. Šis metodas reikalauja techninės įrangos pardavėjų ir programinės įrangos inžinierių bendradarbiavimo, nes aparatinė ir programinė įranga turi veikti kartu. Dvi bendruomenės kalbasi, sako Asanovičius, bet nėra sutarimo, kaip tai atrodys. Jis priduria, kad operacinė atmintis greičiausiai bus vienas iš metodų derinių, galinčių palengvinti programavimą lygiagrečiai.
Nesant sutarimo, kaip toliau naudoti daugiagysles technologijas, vartotojų kompiuterių pramonė gali atsidurti aklavietėje maždaug po penkerių metų, sako Shalf. Tačiau jis nusiteikęs optimistiškai, nes atsiradus dviejų ir keturių branduolių produktams, lygiagrečiojo skaičiavimo sričiai buvo suteiktas naujas skubos jausmas. Pasak jo, akademinėje bendruomenėje galime nesutikti metų metus, tačiau pramonė turi būdą, turintį ekonominį poreikį, gana greitai priimti sprendimą.