Hjemmesider

Parallelisme kræver Killer-ansøgning til masseadoptagelse

Revealing the True Donald Trump: A Devastating Indictment of His Business & Life (2016)

Revealing the True Donald Trump: A Devastating Indictment of His Business & Life (2016)
Anonim

Tilføjelsen af ​​flere kerner til mikroprocessorer har skabt en betydelig mulighed for parallel programmering, men der kræves en killer applikation for at skubbe konceptet i mainstream, sagde forskere under en paneldiskussion på Hot Chips-konferencen.

De fleste software i dag er stadig skrevet til sekventiel udførelse, og programmeringsmodellerne skal ændres for at drage fordel af hurtigere hardware og et stigende antal kerner på chips, sagde panelister. Programmører skal skrive kode på en måde, der gør det muligt at opdele opgaver og udføres samtidig på tværs af flere kerner og tråde.

En masse fokus og penge er gået i at opbygge hurtige maskiner og bedre programmeringssprog, sagde David Patterson, en computer videnskabsprofessor ved University of California, Berkeley, på konferencen i Stanford mandag. Forholdsvis lidt opmærksomhed er blevet givet på at skrive skrivebordsprogrammer parallelt, men applikationer som spil og musik kan ændre det. Brugere af sådanne programmer kræver den bedste realtidseffektivitet, så programmerere må muligvis vedtage modeller, der opdeler opgaver over flere tråde og kerner.

For eksempel kan nye former for parallelisme medføre forbedring af kvaliteten af ​​musik afspilles på pc'er og smartphones, sagde Patterson. Kode, der gør et bedre arbejde med at adskille kanaler og instrumenter, kan i sidste ende skabe lyd gennem parallel interaktion.

University of California, Berkeley, har et parallelt computerlaboratorium, hvor forskere forsøger at forstå, hvordan applikationer anvendes, hvilket kunne hjælpe med at optimere kode til håndholdte enheder. Et projekt sigter mod at bringe browseren til desktop kvalitet til håndholdte enheder ved at optimere kode baseret på specifikke opgaver som gengivelse og parsing af sider. Et andet projekt indebærer optimering af kode til hurtigere hentning af sundhedsoplysninger. Lab'et finansieres primært af Intel og Microsoft.

Berkeley-forskere forsøger at bringe parallelisme i stedet ved at erstatte bits af kode, der oprindeligt blev skrevet ved hjælp af skriptsprog som Python og Ruby on Rails med ny lav C-kode. Den nye kode fokuserer specifikt på bestemte opgaver som at analysere et bestemt stemme mønster i en talegenkendelsesapplikation, sagde Patterson i et interview onsdag. Koden er skrevet ved hjælp af OpenMP eller MPI, applikationsprogrammeringsgrænseflader designet til at skrive parallelle applikationer på maskinniveau.

Eksperter er nødt til at skrive denne højt specialiserede parallelle kode, sagde Patterson. Det reducerer udviklingstiden for programmører, der ellers ville bruge Python og Ruby on Rails, hvilket gør applikationsudvikling lettere, men fokuserer ikke på parallelisme, sagde Patterson i interviewet. Laboratoriet har vist en specifik opgaveudførelse med 20 gange med maskinens lave kode.

Begrebet parallelisme er ikke nyt, og har for det meste været domænet for højtydende computing. Lavt niveau af parallelisme har altid været muligt, men programmører har oplevet en skræmmende opgave med mangel på softwareværktøjer og stadigt skiftende hardwaremiljøer.

"Tråd skal synkronisere korrekt", siger Christos Kozyrakis, professor i elektroteknik og computervidenskab ved Stanford University, under en præsentation forud for paneldiskussionen. Koden skal skrives i en form, der foregår forudsigeligt og skaleres, efterhånden som flere kerner bliver tilgængelige.

Kompilere skal også gøres klogere og være følsomme nok til at opdele tråde til tiden, så outputene modtages i en korrekt rækkefølge, sagde Kozyrakis. Fejlfulde forsøg på at opbygge parallelisme i kode kan skabe buggy-software, hvis specifikke beregninger ikke udføres i en bestemt rækkefølge. Det er et problem, der almindeligvis betegnes som raceforhold. Codere kan også have brug for at lære at bruge flere programmeringsværktøjer for at opnå fynere niveauer af parallelisme, sagde panelister.

"Der er ingen dovenskabende tilgang til programmering", sagde Patterson på konferencen.

Hukommelse og netværksforsinkelse har skabt flaskehalser i data-gennemstrømning, hvilket kunne negere den præstation, der opnås ved parallel task execution. Der findes også forskellige programmeringsværktøjer til forskellige arkitekturer, hvilket gør det vanskeligt at udnytte al den tilgængelige hardware.

Mange parallelle værktøjer, der er tilgængelige i dag, er designet til at udnytte parallelbehandlingsfunktionerne hos processorer og grafikbehandlingsenheder for at forbedre systemets ydeevne. Apple, Intel, Nvidia og Advanced Micro Devices er blandt de virksomheder, der fremmer OpenCL, et parallelt programmeringsmiljø, der vil blive understøttet i Apples kommende Mac OS X 10.6-operativsystem, også kaldet Snow Leopard, som skal udgives fredag. OpenCL konkurrerer med Microsoft, som fremmer sine proprietære DirectX parallelle programmeringsværktøjer, og Nvidia, der tilbyder CUDA-rammen.

OpenCL indeholder et C-lignende programmeringssprog med API'er (applikationsprogrammeringsinterfaces) til styring af distribution af kerner på tværs af hardware som processor kerner og andre ressourcer. OpenCL kunne hjælpe Mac OS med at afkode video hurtigere ved at distribuere pixelbehandling på tværs af flere CPU- og grafikbehandlingsenheder i et system.

Alle eksisterende værktøjer er rettet mod forskellige software-miljøer og udnytter forskellige ressourcer, siger Patterson. OpenCL, for eksempel, er gearet mere mod udførelse af opgaver på GPU'er. Proprietære modeller som DirectX er vanskelige at implementere på tværs af heterogene computermiljøer, mens nogle modeller som OpenCL tilpasser sig kun bestemte miljøer, der er afhængige af GPU'er.

"Jeg tror ikke [OpenCL] skal omfavnes på tværs af alle arkitekturer." Patterson sagde. "Vi har brug for i mellemtiden at forsøge andre ting", som at forsøge at forbedre programmeringsmodellerne med almindeligt anvendte udviklingsværktøjer, som Ruby on Rails, sagde han.

Mens publikum påpegede, at parallelisme har været et problem for årtier, sagde panelerne, at universiteter nu tager en ny tilgang til at arbejde på flere programmeringsværktøjer for at muliggøre parallelisme. Efter mange års finansiering af chipudvikling, betaler regeringen også mere opmærksomhed på parallelbehandling ved finansieringsrelaterede programmer.

Kozyrakis sagde, at Stanford har etableret et laboratorium, der sigter mod at "gøre parallel applikationsudvikling praktisk til masserne" inden 2012 Forskerne arbejder sammen med virksomheder som Intel, AMD, IBM, Sun, Hewlett-Packard og Nvidia.

En øjeblikkelig opgaveprøve for udviklere kan være at forsøge at konvertere eksisterende arvskode parallelt til udførelse på moderne chips, Berkeleys Patterson sagde. Et par virksomheder tilbyder automatisk parallelisering, men omskrivning og samling af arvskoden oprindeligt skrevet til sekventiel udførelse kunne være en stor udfordring.

"Der er penge, der skal laves på disse områder," sagde Patterson.