Android

Multicore-chips stellen volgende grote uitdaging voor industrie

6. Multicore Programming

6. Multicore Programming
Anonim

Het toevoegen van meer verwerkingscores is de belangrijkste manier gebleken om de prestaties van server- en pc-chips te verbeteren, maar de voordelen zullen sterk verminderen als de industrie bepaalde hardware- en programmeeruitdagingen niet kan overwinnen, deelnemers aan de Multicore Expo in Santa Clara, California, zei deze week.

De meeste software van vandaag is nog steeds geschreven voor single-core chips en moet worden herschreven of geüpdatet om te profiteren van het toenemende aantal kernen dat Intel, Sun Microsystems en andere chipmakers toevoegen aan hun producten, zei Linley Gwennap, president en principal analyst bij The Linley Group.

Off-the-shelf-applicaties zullen vaak sneller werken op CPU's met maximaal vier processorcores, maar verder dan die prestaties niveaus af en kan zelfs verslechteren als er meer kernen worden toegevoegd, zei hij. Een recent rapport van Gartner wees ook op het probleem.

Chipmakers en systeembouwers zijn begonnen met het ontwikkelen van ontwikkelaars en het bieden van betere tools voor multicore-programmering. Een jaar geleden zeiden Intel en Microsoft dat ze US $ 20 miljoen zouden investeren om twee onderzoekscentra te openen aan Amerikaanse universiteiten die zich toelegden op de aanpak van het probleem. Het ontbreken van multicore-programmeertools voor reguliere ontwikkelaars is misschien wel de grootste uitdaging waar de industrie voor staat, aldus Gwennap.

Toepassingen schrijven op een manier die verschillende delen van een computertaak, zoals het oplossen van een wiskundig probleem of het weergeven van een afbeelding, mogelijk maakt opgesplitst en tegelijkertijd uitgevoerd worden over meerdere kernen is niet nieuw. Maar dit model, ook wel parallelle computertechnologie genoemd, is tot nu toe voornamelijk beperkt tot gespecialiseerde, krachtige computeromgevingen.

Er zijn een paar parallelle programmeertools beschikbaar, zoals Intel's Parallel Studio voor C en C ++. Andere leveranciers in de ruimte zijn Codeplay, Polycore Software en Clik Arts. Er is ook een nieuw C-gebaseerd parallelle programmeermodel genaamd OpenCL, ontwikkeld door The Khronos Group en ondersteund door Apple, Intel, AMD, Nvidia en anderen.

Maar veel van de beschikbare tools zijn nog steeds in uitvoering, deelnemers aan zei de Multicore Expo. Softwarecompilers moeten in staat zijn om code te identificeren die kan worden geparallaliseerd, en vervolgens het werk doen om te parallelliseren zonder handmatige tussenkomst van programmeurs, aldus Shay Gal-on, directeur van software engineering bij EEMBC, een non-profitorganisatie die benchmarks ontwikkelt voor ingesloten chips.

Ondanks het gebrek aan tools, hebben sommige softwareleveranciers het relatief eenvoudig gevonden om parallelle code te maken voor eenvoudige computeropdrachten, zoals beeld- en videoverwerking, zei Gwennapp. Adobe heeft Photoshop zo herschreven dat taken als vergroting en afbeeldingsfiltering kunnen worden toegewezen aan specifieke x86-kernen, waardoor de prestaties met drie of vier keer worden verbeterd, zei hij.

"Als u video of afbeeldingen maakt, kunt u verschillende sets pixels en wijs ze toe aan verschillende CPU's. Je kunt op die manier veel parallellisme krijgen, "zei hij. Maar voor meer complexe taken is het moeilijk om een ​​enkele benadering te vinden voor het identificeren van een reeks berekeningen die kunnen worden geparallaliseerd en vervolgens te verdelen.

Hoewel de programmeerkant de grootste uitdaging kan zijn, zijn er ook hardwarewijzigingen die moeten worden aangebracht om problemen zoals geheugenlatentie en lage bussnelheden te overwinnen. "Naarmate je steeds meer CPU's op de chip toevoegt, heb je de geheugenbandbreedte nodig om een ​​back-up te maken," zei Gwennap.

Het delen van een enkele geheugencache of gegevensbus tussen meerdere kernen kan een knelpunt veroorzaken, wat betekent dat de extra kernen grotendeels verspild zijn. "Tegen de tijd dat je zes of acht CPU's bereikt, besteden ze al hun tijd aan het praten met elkaar en niet vooruit gaan om hun werk gedaan te krijgen," zei hij. <<<<<<< hardware en software om betere parallelle programma's te schrijven. Veel coders zijn niet op de hoogte van de nieuwste ontwikkelingen op het gebied van hardware-ontwerp, zei Gal-on. Ze zouden databladen moeten openen en chiparchitectuur moeten bestuderen om te begrijpen hoe hun code beter kan presteren, zei hij.