Android

Multicore chipovi predstavljaju sljedeći veliki izazov za industriju

6. Multicore Programming

6. Multicore Programming
Anonim

Dodavanje više procesorskih jezgri pojavilo se kao primarni način povećanja performansi poslužitelja i PC čipova, no prednosti će se uvelike smanjiti ako industrija ne može nadvladati određene izazove hardvera i programiranja, sudionici Multicore Expo u Santa Clari, Kalifornija, rekao je ovaj tjedan.

Većina softvera danas je još uvijek napisana za jednojezgrene čipove i morat će se prepisati ili ažurirati kako bi iskoristili sve veći broj jezgri koje su Intel, Sun Microsystems i drugi proizvođači čipova dodali njihovim proizvodima, rekao je Linley Gwennap, predsjednik i glavni analitičar tvrtke The Linley Group.

Programi koji se nude na polici često će se brže pokretati na procesorima s najviše četiri procesorske jezgre, ali iznad te performanse razina se i može se čak pogoršati dok se dodaju više jezgri, rekao je. Nedavni izvještaj Gartnera također je naglasio problem.

Čip makeri i graditelji sustava počeli su nastojati educirati razvojne programere i pružiti im bolje alate za programiranje višejezgrenih programa. Prije godinu dana Intel i Microsoft priopćili su kako će uložiti 20 milijuna američkih dolara za otvaranje dva istraživačka centra na američkim sveučilištima koja su posvećena rješavanju problema. Nedostatak višesmjernog programskog alata za glavne razvojne programere možda je najveći izazov s kojim se danas suočava industrija, piše Gwennap.

Pisanje aplikacija na način koji omogućuje različite dijelove računalnih zadataka, kao što je rješavanje matematičkog problema ili prikazivanje slike, podijeliti i izvršiti istodobno na više jezgri nije nova. Ipak, ovaj model, koji se često naziva paralelno računanje, dosad je ograničen uglavnom na specijalizirane računalne okruženja visokih performansi.

Ali posljednjih godina Intel i Advanced Micro Devices dodali su jezgre kao energetski učinkovitiji način za pojačavanje čipova, značajna promjena od njihove tradicionalne prakse povećanja brzine sata. Intel gradi osam jezgri u svoje predstojeće Nehalem-EX čipove, a AMD projektira 12-jezgrene čipove za poslužitelje. Oni također dodaju sposobnosti višestrukih navoja, koje omogućuju da svaki od jezgri radi na više redaka koda u isto vrijeme.

To znači da glavne aplikacije moraju biti napisane na drugačiji način kako bi se iskoristile dodatne jezgre dostupne, Rad je teško napraviti i stvara potencijal za nove tipove softverskih grešaka. Jedna od najčešćih je "uvjeti utrke", pri čemu izlazni izračun ovisi o različitim elementima zadatka koji se dovršavaju u određenom redoslijedu. Ako nisu, može doći do pogrešaka.

Dostupni su neki paralelni programski alati, kao što je Intelov paralelni studio za C i C + +. Ostali dobavljači u prostoru su Codeplay, Polycore Software i Clik Arts. Postoji i novi model paralelnog programiranja C-a koji se zove OpenCL, kojeg razvija The Khronos Group i podržava Apple, Intel, AMD, Nvidia i drugi.

No, mnogi dostupni alati još uvijek su u tijeku, sudionici izjavio je Multicore Expo. Softver sastavljači trebaju biti u mogućnosti identificirati kodove koji se mogu paralelizirati, a potom obaviti posao paraleliranja bez manualne intervencije programera, rekao je Shay Gal-on, direktor softverskog inženjeringa u EEMBC-u, neprofitnoj organizaciji koja razvija referentne vrijednosti za ugrađene čipove.

Usprkos nedostatku alata, neki dobavljači softvera smatraju da je relativno lako stvoriti paralelni kod za jednostavne računalne poslove, kao što je slika i video obrada, kaže Gwennapp. Adobe je prepisao Photoshop na način koji može dodijeliti zadatke poput povećanja i filtriranja slika na specifične jezgre x86, poboljšavajući performanse tri do četiri puta, rekao je.

"Ako radite video ili grafiku, možete poduzeti različite skupove piksela i dodijeliti ih različitim procesorima. Na taj način možete postići puno paralelizma ", rekao je. No za složenije zadatke teško je pronaći jedan pristup za prepoznavanje niza računanja koje se mogu paralelizirati, a zatim ih podijeliti.

Iako programska strana može predstavljati najveći izazov, tu su i hardverske promjene koje treba napraviti, kako bi se prevladali problemi kao što su kašnjenje memorije i spore brzine sabirnice. "Dok dodajete sve više CPU-a na čip, potrebna vam je memorijska širina pojasa kako bi se podržala", rekao je Gwennap.

Dijeljenje jedne memorijske predmemorije ili podatkovne sabirnice između više jezgri može stvoriti usko grlo, što znači da će dodatni jezgri biti u velikoj mjeri izgubiti. "Kad dođete do šest ili osam CPU-ova, oni provode cijelo vrijeme razgovarajući jedni s drugima i ne napreduju prema naprijed da dobiju bilo koji posao", kazao je.

Onus može naposljetku ležati s programerima kako bi se premostila jaz između hardver i softver za pisanje boljih paralelnih programa. Mnogi koderi nisu u stanju ubrzati najnovija dostignuća u dizajnu hardvera, rekao je Gal-on. Oni bi trebali otvoriti podatkovne listove i proučavati čipne arhitekture kako bi razumjeli kako njihov kod može bolje funkcionirati, rekao je