Nettsteder

Parallelisme trenger Killer-søknad om masseannonsering

HIDE ONLINE HUNTERS VS PROPS TOILET THUNDER TROUBLES

HIDE ONLINE HUNTERS VS PROPS TOILET THUNDER TROUBLES
Anonim

Tilsetningen av flere kjerner til mikroprosessorer har skapt en betydelig mulighet for parallell programmering, men det er behov for en killer applikasjon for å presse konseptet inn i det vanlige, sa forskere under en paneldiskusjon på Hot Chips-konferansen.

De fleste programvare i dag er fortsatt skrevet for sekvensiell utførelse og programmeringsmodellene må byttes for å dra nytte av raskere maskinvare og et økende antall kjerner på chips, sa paneldeltakerne. Programmører trenger å skrive kode på en måte som gjør at oppgaver kan deles opp og utføres samtidig på tvers av flere kjerner og tråder.

Mange fokus og penger har gått på å bygge raske maskiner og bedre programmeringsspråk, sa David Patterson, en datamaskin science professor ved University of California, Berkeley, på konferansen i Stanford mandag. Forholdsvis lite oppmerksomhet har blitt gitt til å skrive skrivebordsprogrammer parallelt, men programmer som spill og musikk kan endre det. Brukere av slike programmer krever den beste sanntidsytelsen, så programmører må kanskje adoptere modeller som bryter opp oppgaver over flere tråder og kjerner.

For eksempel kan nye former for parallellitet gi bedre kvaliteten på musikken som spilles av på PCer og smartphones, sa Patterson. Kode som gjør en bedre jobb med å skille kanaler og instrumenter kan i siste instans generere lyd gjennom parallell samhandling.

University of California, Berkeley, har et parallelt datalaboratorium hvor forskere forsøker å forstå hvordan applikasjoner brukes, noe som kan bidra til å optimalisere kode for håndholdte enheter. Ett prosjekt har til formål å bringe surfing på skrivebordskvalitet til håndholdte enheter ved å optimalisere kode basert på bestemte oppgaver som gjengivelse og analyse av sider. Et annet prosjekt innebærer optimalisering av kode for raskere henting av helseinformasjon. Laben finansieres hovedsakelig av Intel og Microsoft.

Berkeley-forskere forsøker å bringe parallellitet ved å erstatte biter av kode som opprinnelig ble skrevet ved hjelp av skriptspråk som Python og Ruby on Rails med ny lavnivå C-kode. Den nye koden fokuserer spesielt på bestemte oppgaver som å analysere et bestemt stemme mønster i et talegjenkjennelsesprogram, sa Patterson i et intervju onsdag. Koden er skrevet ved hjelp av OpenMP eller MPI, programmeringsgrensesnitt designet for å skrive parallelle applikasjoner på maskinnivå.

Eksperter må skrive denne høyt spesialiserte parallelle koden, sa Patterson. Det reduserer utviklingstiden for programmerere som ellers ville bruke Python og Ruby on Rails, noe som gjør applikasjonsutvikling enklere, men ikke fokusert på parallellitet, sa Patterson i intervjuet. Laboratoriet har vist spesifikke oppgavesøk hoppe med en faktor på 20 med maskinvaren på lavt nivå.

Begrepet parallellitet er ikke nytt, og har hovedsakelig vært domenet til høy ytelsesbasert databehandling. Lav grad av parallellitet har alltid vært mulig, men programmører har møtt en skremmende oppgave med mangel på programvareverktøy og stadig skiftende maskinvaremiljøer.

"Tråder må synkronisere riktig," sa Christos Kozyrakis, professor i elektroteknikk og datavitenskap ved Stanford University, under en presentasjon før paneldiskusjonen. Koden må skrives i et skjema som oppfører seg forutsigbart og skaleres etter hvert som flere kjerner blir tilgjengelige.

Kompilatorer må også gjøres smartere og være oppsiktsvekkende nok til å bryte opp tråder i tide, slik at utgangene mottas i riktig rekkefølge, sa Kozyrakis. Feilfulle forsøk på å bygge parallellitet i kode kan skape buggy programvare hvis bestemte beregninger ikke utføres i en bestemt rekkefølge. Det er et problem som ofte kalles raseforhold. Coders kan også trenge å lære å bruke flere programmeringsverktøy for å oppnå finere nivåer av parallellitet, sa paneldeltakerne.

"Det er ingen lat poeng tilnærming til programmering," sa Patterson på konferansen.

Minne- og nettverkslatens har skapt flaskehalser i data-gjennomstrømming, noe som kan negere ytelsen oppnådd ved parallell oppgaveutførelse. Det finnes også forskjellige programmeringsverktøy for ulike arkitekturer, noe som gjør det vanskelig å dra nytte av all maskinvare som er tilgjengelig.

Mange parallellverktøy som er tilgjengelige i dag, er utformet for å utnytte parallellbehandlingskapasiteten til CPUer og grafikkbehandlingsenheter for å forbedre systemytelsen. Apple, Intel, Nvidia og Advanced Micro Devices er blant de selskapene som markedsfører OpenCL, et parallelt programmeringsmiljø som støttes i Apples kommende Mac OS X 10.6-operativsystem, også kalt Snow Leopard, som kommer til fredag ​​fredag. OpenCL konkurrerer med Microsoft, som fremmer sine proprietære DirectX parallelle programmeringsverktøy, og Nvidia, som tilbyr CUDA-rammeverket.

OpenCL inneholder et C-lignende programmeringsspråk med APIer (programmeringsgrensesnitt) for å administrere distribusjon av kjerner på tvers av maskinvare som prosessorkjerner og andre ressurser. OpenCL kan hjelpe Mac OS til å avkode video raskere ved å distribuere pikselbehandling på tvers av flere CPU- og grafikkbehandlingsenheter i et system.

Alle eksisterende verktøy er rettet mot forskjellige programvaremiljøer og utnytter ulike ressurser, sa Patterson. OpenCL, for eksempel, er rettet mer mot utførelse av oppgaver på GPUer. Proprietære modeller som DirectX er vanskelige å distribuere over heterogene databehandlingsmiljøer, mens noen modeller som OpenCL tilpasser seg kun bestemte miljøer som er avhengige av GPUer.

"Jeg tror ikke [OpenCL] skal omfavnes på tvers av alle arkitekturer." Patterson sa. «Vi trenger i mellomtiden å prøve andre ting», som å prøve å forbedre programmeringsmodellene med vanlige utviklingsverktøy, som Ruby on Rails, sa han.

Mens publikum påpekte at parallellitet har vært et problem for årtier, sa panelerne at universiteter nå tar en ny tilnærming til å jobbe med flere programmeringsverktøy for å muliggjøre parallellisme. Etter flere år med finansiering av utviklingen av brikker, legger regjeringen også større vekt på parallellbehandling av finansieringsrelaterte programmer.

Kozyrakis sa at Stanford har etablert en lab som har som mål å "gjøre parallell applikasjonsutvikling praktisk for massene" innen 2012 Forskere jobber med selskaper som Intel, AMD, IBM, Sun, Hewlett-Packard og Nvidia.

En umiddelbar oppgaveprøve for utviklere kan være å prøve å konvertere eksisterende arvskode parallelt for utførelse på moderne chips, Berkeleys Patterson sa. Et par selskaper tilbyr automatisk parallellisering, men omskriving og samling av arvskoden som opprinnelig ble skrevet for sekvensiell utførelse, kan være en stor utfordring.

"Det er penger som skal gjøres på disse områdene," sa Patterson.