Websites

Parallelism Needs Killer Application for Mass Adoption

XRP BANKING APP READY FOR MASS ADOPTION!!! - XRP TO 100$???

XRP BANKING APP READY FOR MASS ADOPTION!!! - XRP TO 100$???
Anonim

De toevoeging van meerdere kernen aan microprocessors heeft een belangrijke mogelijkheid gecreëerd voor parallelle programmering, maar een geweldige toepassing is nodig om het concept naar de mainstream te duwen, aldus onderzoekers tijdens een paneldiscussie op de Hot Chips-conferentie.

De meeste software van vandaag wordt nog steeds geschreven voor sequentiële uitvoering en programmeermodellen moeten worden gewijzigd om te profiteren van snellere hardware en een toenemend aantal kernen op chips, zeiden panelleden. Programmeurs moeten code schrijven op een manier die het mogelijk maakt om taken op te splitsen en simultaan uit te voeren over meerdere kernen en threads.

Veel aandacht en geld zijn besteed aan het bouwen van snelle machines en betere programmeertalen, zei David Patterson, een computer wetenschapshoogleraar aan de University of California, Berkeley, op de conferentie in Stanford op maandag. Er is relatief weinig aandacht besteed aan het parallel schrijven van desktopprogramma's, maar toepassingen zoals games en muziek kunnen daar verandering in brengen. Gebruikers van dergelijke programma's vereisen de beste real-time prestaties, zodat programmeurs mogelijk modellen moeten gebruiken die taken opdelen over meerdere threads en kernen.

Bijvoorbeeld, nieuwe vormen van parallellisme kunnen de kwaliteit van muziek die wordt afgespeeld op pc's verbeteren en smartphones, zei Patterson. Code die kanalen en instrumenten beter kan scheiden, kan uiteindelijk geluid genereren door middel van parallelle interactie.

De University of California, Berkeley, heeft een parallel computinglab, waar onderzoekers proberen te begrijpen hoe toepassingen worden gebruikt, wat kan helpen de code te optimaliseren voor handheld apparaten. Eén project heeft tot doel bladeren op desktopcomputers naar draagbare apparaten te brengen door code te optimaliseren op basis van specifieke taken zoals het renderen en ontleden van pagina's. Een ander project betreft het optimaliseren van code voor het sneller ophalen van gezondheidsinformatie. Het lab wordt voornamelijk gefinancierd door Intel en Microsoft.

Berkeley-onderzoekers proberen parallellisme te bewerkstelligen door stukjes code die oorspronkelijk zijn geschreven te vervangen door scriptingstalen zoals Python en Ruby on Rails met nieuwe low-level C-code. De nieuwe code richt zich specifiek op specifieke taken, zoals het analyseren van een specifiek spraakpatroon in een toepassing voor spraakherkenning, zei Patterson in een interview op woensdag. De code is geschreven met behulp van OpenMP of MPI, applicatieprogrammeringsinterfaces ontworpen om parallelle toepassingen op machineniveau te schrijven.

Deskundigen moeten deze zeer gespecialiseerde parallelle code schrijven, zei Patterson. Het verkort de ontwikkelingstijd voor programmeurs die anders Python en Ruby on Rails zouden gebruiken, wat de ontwikkeling van applicaties eenvoudiger maakt, maar zich niet concentreert op parallellisme, zei Patterson in het interview. Het lab heeft aangetoond dat specifieke taakuitvoering een factor 20 sneller springt dan de machinecode op laag niveau.

Het concept van parallellisme is niet nieuw en was meestal het domein van high-performance computing. Lage niveaus van parallellisme waren altijd mogelijk, maar programmeurs hebben te maken gehad met een ontmoedigende taak met een gebrek aan softwaretools en steeds veranderende hardwareomgevingen.

"Threads moeten correct synchroniseren", zegt Christos Kozyrakis, een professor in elektrotechniek en informatica aan de Stanford University, tijdens een presentatie voorafgaand aan de paneldiscussie. Code moet worden geschreven in een vorm die zich voorspelbaar gedraagt ​​en schalen naarmate er meer kernen beschikbaar komen.

Compilers moeten ook slimmer worden gemaakt en voldoende scherpzinnig zijn om threads op tijd te verbreken, zodat outputs in een juiste volgorde worden ontvangen, zei Kozyrakis. Foutieve pogingen om parallelliteit in code te bouwen, kunnen buggy-software creëren als specifieke berekeningen niet in een bepaalde volgorde worden uitgevoerd. Dat is een probleem dat gewoonlijk wordt aangeduid als raceomstandigheden. Codeerders moeten wellicht ook leren hoe ze meerdere programmeertools kunnen gebruiken om fijnere niveaus van parallellisme te bereiken, aldus panelleden.

"Er is geen luie jongensbenadering van programmeren", zei Patterson op de conferentie.

Geheugen- en netwerklatentie hebben knelpunten in de gegevensdoorvoer gecreëerd, wat de prestaties van parallelle taakuitvoering teniet kon doen. Er zijn ook verschillende programmeertools voor verschillende architecturen, waardoor het moeilijk wordt om alle beschikbare hardware te benutten.

Veel parallelliteitstools die tegenwoordig beschikbaar zijn, zijn ontworpen om de parallelle verwerkingsmogelijkheden van CPU's en grafische verwerkingseenheden te benutten om de systeemprestaties te verbeteren. Apple, Intel, Nvidia en Advanced Micro Devices behoren tot de bedrijven die OpenCL promoten, een parallelle programmeeromgeving die zal worden ondersteund in het aankomende Mac OS X 10.6 besturingssysteem van Apple, ook wel Snow Leopard genoemd, dat vrijdag moet worden uitgebracht. OpenCL concurreert met Microsoft, dat zijn eigen DirectX parallelle programmeringstools promoot, en Nvidia, dat het CUDA-framework biedt.

OpenCL bevat een C-achtige programmeertaal met API's (application programming interfaces) om de distributie van kernels over hardware zoals als processorcores en andere bronnen. OpenCL kan Mac OS helpen om video sneller te decoderen door pixelverwerking over meerdere CPU- en grafische verwerkingseenheden in een systeem te verdelen.

Alle bestaande tools zijn gericht op verschillende softwareomgevingen en profiteren van verschillende bronnen, zei Patterson. OpenCL is bijvoorbeeld meer gericht op het uitvoeren van taken op GPU's. Merkgebonden modellen zoals DirectX zijn moeilijk te implementeren in heterogene computeromgevingen, terwijl sommige modellen zoals OpenCL zich alleen aanpassen aan specifieke omgevingen die afhankelijk zijn van GPU's.

"Ik denk niet dat [OpenCL] wordt omarmd in alle architecturen." Patterson zei. "In de tussentijd moeten we andere dingen proberen", zoals de programmeermodellen proberen te verbeteren met veelgebruikte ontwikkeltools, zoals Ruby on Rails, zei hij.

Volgens Kozyrakis heeft Stanford een lab opgericht dat tot doel heeft "parallelle applicatie-ontwikkeling praktisch te maken voor de massa's", tegen 2012 De onderzoekers werken samen met bedrijven als Intel, AMD, IBM, Sun, Hewlett-Packard en Nvidia. Een directe taakentest voor ontwikkelaars zou kunnen zijn om te proberen bestaande legacy-code parallel te converteren voor uitvoering op moderne chips, Berkeley's Patterson zei. Een aantal bedrijven biedt automatische parallellisatie, maar het herschrijven en compileren van de oude code die oorspronkelijk is geschreven voor sequentiële uitvoering kan een grote uitdaging zijn.

"Er is geld te verdienen in die gebieden," zei Patterson.