Galerija

Kraj besplatnog ručka, multi-core

Za nas starije mladiće, prvi računari su se pojavili još jako davno, sa prvim Sinclair ZX80 ili Commodore 64 i sve što nam je trebalo godinama kao korisnicima, ali i kao programerima je uvek bilo jedno te isto, stalno jača mašina. Uvek smo bili gladni novih procesora, memorije, hard diskova ili grafičkih kartica. Godinama smo znali napamet magistralu podataka, instrukcije asemblera, koje primitive grafički čip ubzava, a koje ne, koliko je dugačka pajplajn i koliko ima paralelnih jedinica za izračunavanje.

I onda nekako neosetno već negde oko Pentiuma 4, a možda i pre, odjednom sam se našao da polako počinjem da ignorišem nove procesorske arhitekture, ne znam ni sam sad tačno koja je ono frekfencija memorije, da li je DDR 2 ili 3 ili možda čak 4. Sav fokus se premestio sa hardvera na softver. Pre toga, Majkrosoft, kao i mnoge druge firme devedesetih prošlog veka i prvih godina ovog veka su stalno gurale napred Intel, AMD, Invidiju i ATI da prave nove mnogo brže procesore i memorije. Jer po njihovoj računici uvek je bilo isplatljivije rešiti problem brzine izvršavanja novim, bržim procesorom nego optimizovanjem softvera. A i proizvođači hardvera nisu baš bili samo tako jednostavno naivni i primorani da trpe pritiske softverskih kompanija. I njima se, naravno, isplatilo da učestvuju u toj trci rapidnog zastarevanja hardvera, jer tako se održavao potrošački lanac. Malo malo, pa morate da promenite računar ili njegov deo.

Nekoliko procesora sve upakovano u jednu pločicu

Nekoliko procesora sve upakovano u jednu pločicu

No, onda su se desila dva fenomena zajedno. Sa jedne strane snaga hardvera je postala neuporedivo veća nego potreba prosečnog korisnika, tako da je postalo mnogo bitnije šta vi to znate da uradite na računaru od onoga koliko brzo to on može da odradi. Tako da je znanje korisnika i pojednostavljivanje softvera postalo daleko bitnije. S druge strane, računarska tehnologija je došla skoro do svog teorijskog plafona do koje mere se mogu dizati megaherci, a da se plastično kućište ne istopi ili da vam ne treba megavat struje da ga napajate. Međutim i pored svega, ostao je dovoljno veliki segment korisnika kojima je jači hardver i te kako potreban. To su gejmeri, profesionalci video editinga, CAD crtanja, i ostalih srodnih delatnosti gde snage nikad dosta. Do trenutka do kada su proizvođači čipova mogli da dižu radnu frekfenciju komponenti, programerima je bilo lako. Štaviše i iz svog iskustva često smo namerno ostavljali neoptimizovani softver, jer za godinu dana nakon njegovog plasiranja svi bi više manje kupili brže računare. Bili smo pravi paraziti i čak svesni toga. Imali smo godinama besplatan ručak koji su redovno nudile hardverske kompanije. No gozbi je kraj, procesori se već godinama dižu jako malo u broju otkucaja po sekundi, počeli su da idu u širinu, a ne više u visinu. Dakle, pojavili su se više jezgarni procesori. Svaki od njih ima istu snagu, ali ih može biti 1, 2, 4, 8, 16, u zavisnoti od cene i svi mogu da rade paralelno (više manje, nećemo sada da se upuštamo u dublje teorijske analize). Da, ali to samo po sebi nema skoro nikakvog uticaja na krajnjeg korisnikia, osim u slučaju da koristi jako puno programa u isto vreme. Ako koristite jedan video editing, 1, 2, 4 ili sto jezgara neće ništa promeniti, samo jedno jezgro će izvršavati programe. Postoje mnogobrojni razočarani korisnici koji nisu dobili skoro nikakvo ubrzanje kupovinom višejezgarnih računara. E, to je zato što mi ponekad lenji i debeli programeri, još sa sećanjem na ona divna vremena besplatnog ručka, nismo još promenili dovoljan broj programa da počnu i da koriste svu tu paralelnu snagu. To nije ni automatska ni jednostavna operacija. Za to je potreban ozbiljan poduhvat menjanja i dizajna i implementacije sadašnjih programa. Tako da se operacije jednog programa podele sa koncepta izvršavanja jednog jedinog posla na paralelno izvršavanje velikog broja pod-poslova. Recimo da ako biste radili konverziju zvučnog ili video zapisa, umesto da jedno jezgro radi dva sata sadržaja, treba promeniti program da svako od, recimo, četiri jezgra radi po segment od pola sata i sve to paralelno. Da je pojava višejezgarnih procesora iznenadila sve, a najviše programere, dokaz je da nakon nekoliko godina koliko su multi-kor dostupni širokom tržištu i dalje samo mali broj aplikacija je to u stanju i da koristi. Ako na to dodamo računare u oblaku koji se mogu zamisliti kao dodatna udaljena jezgra, neki program bi mogao teorijski da računa na desetine ako ne i na stotine ili hiljade jezgara. Ali to iziskuje daleko ozbiljnije znanje programera da sve to sinhronizuje u poređenju sa običnim starim mono-kor računarima.

Tako da, dragi korisnici, ako želite da povratite investicije u vaše nove više jezgarne računare, slobodne krenite da kritikujete nas programere i da zahtevate da pišemo programe koji su u stanju i da ih i iskoriste. A vi, kolege, programeri, zavrnite rukave i upustite se u novi divni svet pun novih problema koje do sada niste ni sanjali. Pisati dobar paralelni softver je daleko zahtevnije od starog dobrog jedno-izvršavajućeg. Jer mašine nisu potpuno podeljene. Memorija je i dalje zajednička, mreža i hard disk i grafičke kartice i dalje su samo jedan za sve, pa usaglasiti sva jezgra da rade paralelno a da se ne tuku oko prava na resurse, nije ni malo laka stvar. Prijatno i jednima i drugima.

Ako želite da odslušate, prilog počinje na 18 min 10 sek

Advertisements

One comment on “Kraj besplatnog ručka, multi-core

  1. Povratni ping: Iluzija o kaminu | Markus Maki

Zatvoreno za komentare.