Cât de tare ne mai afectează legea lui Moore?

Acum mai bine de 35 ani Gordon Moore, cofondatorul Intel, a remarcat faptul că densitatea tranzistoarelor din cipurile semiconductoare se cam dublează la fiecare doi ani. Observația lui s-a dovedit a fi nu doar corectă ci și foarte semnificativă iar o consecință pe care utilizatorii o pot simți direct ar fi faptul că noile PC-uri sunt aproximativ de două ori mai puternice comparativ cu cele din generația anterioară de acum 18-24 luni, lucru care a devenit cunoscut sub denumirea de legea lui Moore (cu alte cuvinte performanța sistemelor de calcul se dublează la fiecare 18-24 luni).

Ne-am putea pune întrebarea cât de mare mai este impactul pe care îl are legea lui Moore asupra consumatorului mediu de hardware acum, când computerele au atins deja de mai mulți ani o putere de calcul suficientă pentru aplicațiile uzuale de care au nevoie majoritatea utilizatorilor. Adică navigare pe internet, accesarea deja bătrânului e-mail, editare de texte în Word sau calcul tabelar în Excel, ascultat muzică și văzut filme.

Noroc că Microsoft, prin Windows 7 (care este frumos, luminos dar nu se poate spune că folosește în mod optim resursele hardware ale calculatorului) a sărit în ajutorul producătorilor de hardware și a mai convins utilizatorii din categoria mai sus amintită (foarte bine reprezentată, de altfel), să-și upgradeze calculatoarele dacă vor să  fie în pas cu vremurile și să ruleze noul sistem de operare născut în Redmond și atât de bine vândut. Pentru că altfel, utilizatorii respectivi puteau liniștiți să-și desfășoare rutina zilnică pe vechiul Windows XP sau să-și instaleze Windows 7 pe calculatorul existent, dacă Steve Ballmer ar fi avut mai multă milă cu exploatarea resursele hardware. Să ținem cont și de faptul că Windows 7 comparativ cu Windows Vista (sau chiar cu Windows XP) nu schimbă în mod spectaculos peisajul, pentru că nu reprezintă nici pe departe un progres la fel de mare ca și progresul de la MS-DOS la Windows 3.1 sau ca cel de la Windows 3.1 la Windows 95/98, când numărul de concepte nou apărute a fost cu mult mai mare. Deci upgradeul de la Windows XP la Windows 7 nu mai este atât de imperios necesar ca și cel de la MS-DOS la Windows. În același context merită citită și viziunea Bursucului asupra sistemului de operare Windows în articolul De ce Windows este sistemul de operare perfect…pentru Microsoft.

Deci categoria de utilizatori despre care vorbim nu ar simți mare diferență lucrând pe un sistem cu procesor dual din seria mainstream (cum ar fi la ora actuală Intel Core i3 sau Core i5 tactat la frecvența minimă) versus un procesor high-end de aproape o mie de euro capabil să “rupă norii” (cum ar fi Intel Core i7 980X). Asta pentru că acum procesoarele multicore sunt regula, nu excepția iar vitezele de ordinul câtorva gigahertzi au o răspândire largă chiar și în gama procesoarelor ieftine.

Fenomenul la care m-am referit este și cauza faptului că firmele care aduc în România PC-uri second hand de firmă (HP, Dell, IBM) de generație mai veche au vânzări atât de frumoase. Sunt scule (acum) ieftine, solide, silențioase și în același timp suficient de puternice ca să se achite cu brio de sarcinile pe care le vor primi din partea utilizatorului mediu despre care vorbeam.

Sigur că ce am spus până acum nu se aplică gamerilor înrăiți sau utilizatorilor care realizează codări video sau alte activități computaționale intense. Pentru aceștia niciodată puterea de calcul pe care o au la dispoziție nu este suficientă însă per ansamblu, dacă tragem linie, un procent mai mic de utilizatori așteaptă acum cu nesaț să-și doteze sistemul cu un procesor mai puternic decât se întâmpla în deceniile trecute. Iar dacă totuși o face, nevoia respectivă apare cu concursul producătorilor de software care nu se străduiesc să-și creeze noile versiuni într-un mod optimizat, în așa fel încât ele să ruleze pe cât mai multe calculatoare din generația veche, ci își permit să impună cerințe minime crescute în materie de hardware împingând utilizatorul să facă un efort și să-și mai upgradeze sistemul ca să poată rula în condiții decente noile versiuni de software.

Tranzistoarele din ultima generație de chipuri semiconductoare, integrate în număr dublu față de generația precedentă, funcționau și la tensiuni de alimentare mai reduse și disipau mai puțină căldură (fenomen care se regăsește, de altfel, și în predicțiile lui Moore), ceea ce permitea în primul rând creșterea frecvenței de tact deci și a vitezei de execuție a instrucțiunilor.  Ne amintim că în deceniile trecute era goana după megahertzi sau gigahertzi – cu cât mai mulți cu atât mai bine. Frecvența tactului procesorului era, deci, văzută ca principala metrică a performanței acestuia. În afară de asta, faptul că se puteau integra mai multe tranzistoare în (pe atunci) ultima generație de procesor permitea implementarea diverselor structuri noi ce sporeau performanța (memorie cache integrată mai mare, structuri de pipelining care permiteau suprapunerea parțială sau chiar paralelizarea execuției instrucțiunilor consecutive etc.).

În ultimul deceniu, însă, s-a atins o limită tehnologică ce nu mai permite ca integrând un număr dublu de tranzistoare în cadrul aceluiași procesor secvențial să îl facem de două ori mai rapid. De niște ani încoace predicția lui Moore privitoare la scăderea puterii consumate per tranzistor odată cu creșterea densității de integrare nu mai este valabilă și ca atare nici frecvența de tact a procesoarelor nu mai poate crește dincolo de patru gigahertzi decât cu prețul creșterii dramatice a puterii disipate sub formă de căldură până la valori care devin greu de absorbit de sistemele de răcire uzuale.

Chiar dacă s-a atins această limită tehnologică, performanțele au continuat să crească și legea lui Moore a rămas valabilă și în ultimii ani însă distribuția tranzistoarelor în cadrul procesoarelor se face acum altfel decât în deceniile trecute. Este vorba despre migrarea înspre paralelism. Lectura acestui articol este un proces serial – citești cuvintele în secvență, unul după altul. Nu ai cum să faci altfel. Numărarea cuvintelor din cadrul articolului, însă, este o problemă care se rezolvă cel mai rapid prin paralelism: dăm fiecare paragraf unei alte persoane spre a număra cuvintele din cuprinsul lui iar la final însumăm totalurile parțiale pentru fiecare paragraf pentru a obține totalul general și totul merge mult mai repede decât dacă o singură persoană ar sta să numere cuvintele din întregul articol. Deci folosind numărul mai mare de tranzistoare care pot fi acum integrate în același circuit realizăm nu doar o singură unitate de procesare secvențială, cum era în deceniile trecute, ci mai multe (două, patru, șase, opt etc.), menținând astfel ritmul de creștere a puterii de calcul a procesoarelor.

Explicând necesitatea de a continua migrarea înspre paralelism, Bill Dally, vicepreședinte la Nvidia, afirmă că este critică nevoia de a construi procesoare paralele cu consum eficient de energie, procesoare în care mai multe nuclee de procesare, fiecare dintre ele optimizat pentru eficiență și nu pentru viteză secvențială de procesare, să conlucreze pentru rezolvarea unei probleme. Un avantaj esențial al calculatoarelor paralele este faptul că ele convertesc într-un mod eficient un număr sporit de tranzistoare în performanță suplimentară. Dublarea numărului de nuclee de procesare face ca multe programe să ruleze de două ori mai repede. Spre deosebire de această situație, dublarea numărului de tranzistoare într-un procesor secvențial provoacă o creștere foarte modestă în performanță cu prețului unui consum imens de energie.

Nvidia chiar are un cuvânt de spus în materie de procesare paralelă dacă ne gândim că într-un GPU modern încap sute de nuclee de procesare (de exemplu GPU-ul din GeForce GTX 480 dispune de nu mai puțin de 480 de nuclee CUDA), comparativ cu cele două, patru, șase sau opt nuclee din procesoarele uzuale de pe piață. Arhitectura CUDA este utilizată în GPU-urile GeForce, ION, Quadro și Tesla ale companiei Nvidia și ea ar putea fi utilizată nu doar la procesare grafică ci și pentru activitate computațională de uz general. Dally insistă asupra faptului că strategia de a crea un procesor paralel prin gruparea mai multor procesoare secvențiale optimizate pentru performanță serială maximă este contraproductivă pentru că aceste procesoare vor consuma mult prea multă energie electrică. El recomandă ca unitățile de procesare secvențială să fie mai degrabă optimizate pentru consum eficient de energie, ele putând apoi să fie grupate într-o unitate multicore care va asigura creșterea de performanță dorită în funcționarea ansamblului.

Realitatea este că creșterea numărului de nuclee de procesare disponibile cauzează o creștere semnificativă a vitezei de execuție a programelor numai în măsura în care aceste programe sunt scrise într-un mod care să exploateze capacitatea de procesare paralelă oferită de procesorul multicore. Programele vechi, gândite pentru un singur nucleu de procesare, nu vor rula mai repede dacă vor avea la dispoziție mai multe nuclee, însă chiar și așa o creștere de performanță va fi posibilă măcar pentru faptul că sistemul de operare poate asigna programe (procese) diferite unor nuclee de procesare diferite, procesele fiind astfel executate în același timp față de varianta unui procesor secvențial unic în care procesele ar trebui să împartă timpul de procesare al acestuia. După 40 de ani de programare secvențială se resimte o mare rezistență la schimbare din moment ce ea ar impune o ruptură de practicile de programare înrădăcinate de-a lungul a patru decenii iar conversia bazei imense de programe secvențiale existente la ora actuală pentru a putea exploata eficient structurile de calcul paralel este o sarcină copleșitoare, cu atât mai mult cu cât programatorii antrenați pentru a fi capabili să facă programare paralelă eficientă sunt încă prea puțini.

Share on Facebook
Share on LinkedIn

Publicat în: AnalizeTrenduri

Etichete:

Despre autor: Deși pare uneori cam supărat pe viață, de obicei se abține de la critici gratuite, preferând să publice cu preponderenţă analize obiective ale diverselor trenduri din IT. Cu toate că este o fire destul de agitată, totuși nu prea deschide gura decât când știe exact ce vorbește. După cum se poate vedea și din gravatarul lui, nu mai are toate țiglele pe casă... Umblă vorba prin sat că Şopârloiul şi TransMix ar fi una şi aceeaşi persoană.

RSSComentarii (0)

URL trackback

Comentează




Dacă vrei să apară o poză la comentariul tău, fă-ți rost de un Gravatar.