Skip to main content

Multicore-kodningsstandarder Formålet er at lette programmering

Multicore Association etablerer specifikationer for en programmeringsmodel, der vil reducere kompleksiteten ved at skrive software til multicore-chips anvendt i smartphones, tabletter og andre indlejrede systemer.

Foreningen sætter sammen et sammenhængende sæt fundament API'er (applikationsprogrammeringsgrænseflader) til standardisering af kommunikation, ressourcedeling og virtualisering, der spænder over kerner på samme eller forskellige chips, siger Markus Levy, gruppens præsident.

Chip beslutningstagere tilføjer CPU'er, sensorer og acceleratorer til chips som en energieffektiv måde at øge applikationsydelsen på enheder. Men multicore-chips har også skabt en udfordring for programmører, som skal skrive applikationer, der rækker på tværs af flere kerner, og synkroniseres korrekt for at sikre, at beregninger udføres i en bestemt rækkefølge for at få den korrekte output.

De lavtliggende API'er giver en konsekvent multicore programmeringsmodel, hvorfra applikationer kan skræddersys til at køre på tværs af chiparkitekturer, operativsystemer og specialudstyr, siger Levy. Multicore Association har gennemført MCAPI (multicore communication API) og MRAPI (multicore resource management API) til henholdsvis kommunikation og ressourcestyring og har arbejdsgrupper til at oprette nye værktøjer og API'er relateret til virtualisering.

"Der er mange modtagere at etablere disse API'er. Men det primære mål for alle parter er at etablere bæredygtighed, "siger Levy. En konsekvent programmeringsmodel gør det lettere at genbruge applikationen på tværs af forskellige multicore-platforme. Forud for disse API'er anvendte de fleste modeller proprietære mekanismer, der manglede bærbarhed, siger Levy.

En smartphone kan være designet ved hjælp af flere processorkerner, der kører forskellige operativsystemer, hvor hver kerne giver forskellige funktionaliteter, siger Colin Walls, en integreret softwareteknolog ved Mentor Graphics, som gør Nucleus i realtid operativsystem, der sendes i omkring 400 millioner håndsæt hvert år. MCAPI giver et retfærdigt middel til softwaren på de to kerner til at kommunikere, sagde Walls.

I nogle enheder kan en kerne køre et operativsystem som f.eks. Android eller Linux for at styre meget af brugergrænsefladen, udførelse af brugerprogrammer, fil- og datahåndtering og kommunikation. Den anden kerne kan være lidt usynlig for brugeren og styre lavtelefonaktivitet som f.eks. Etablering og vedligeholdelse af en mobilnetværksforbindelse og håndtering af opkald.

"Ved brug af MCAPI behøver den integrerede applikationskode ikke at være opmærksom på Kernen er bærbar mellem operativsystemer og chiparkitekturer, "sagde Walls.

MCAPI tillader programmører at aktivere applikationer for multicore én gang og genbruge samme kode på flere produkter i en produktlinje og til næste generation enheder, hvilket forbedrer teknikproduktiviteten, siger Sven Brehmer, administrerende direktør for PolyCore Software, som tilbyder udviklingsværktøjer og runtime-software til multicore og multichip-kommunikation.

MCAPI bruges mest i telecom- og datacom-infrastrukturer og multimedie-enheder, sagde Brehmer . Andre områder af interesse omfatter medicinsk udstyr, højtydende computing og militært udstyr og luftfart udstyr som radar.

API'en tillader etablering af domæner til specifikke implementeringer, såsom kommunikation mellem kerner på en given chip eller over specifikke områder i en chipets topologi. Dette giver designere bedre kontrol over rutingen og sikkerheden af ​​deres meddelelser, siger Levy.

"Et aspekt af MCAPI-infrastrukturen indebærer specifikationen af ​​et netværk af kommunikationsnoder, hvor en node kan være en proces, tråd, eksempel på en operativsystem, hardware accelerator eller processor kerne, "sagde Levy.

MCAPI er designet til at arbejde sammen med MRAPI, et API til ressourcehåndtering på applikationsniveau, der koordinerer strømstyring og virtualisering på multicore-chips. Chips indeholder funktioner og funktioner, der ændrer sig dynamisk, og på nogle multicore-chips er det svært for et enkelt operativsystem at spore og kontrollere alle ressourcer, siger Levy. MRAPI understøtter understøttelse på lavt niveau til systemniveaubegivenhedsmeddelelse, såsom strømbesparelsestilstande, enhedsfejl og hypervisorrepartitionering.

Linux-baserede enheder med symmetrisk multiprocessering understøtter f.eks. Ikke en facilitet til at underrette applikationer, når driftsmiljøet eller ressourcer er ændret, sagde Levy. For at imødekomme manglen giver MRAPI programmører implementeringsmekanismer til at håndtere ressourcedeling og reagere på ændringer i ressourcetilgængeligheden.

"Ved hjælp af MRAPI kan systemudviklere skrive bærbare applikationsprogrammer, der skaleres i nuværende og fremtidige generationer af multicore-processorer og arkitekturer, gavnlige applikationer, middleware, processorer og systemudviklere, siger Levy.

Denne standardisering gør det muligt for chipleverandører og tredjepartsværktøjsudbydere at overtage ressourcehåndteringen, så programmører kan fokusere på applikationer på højt niveau, siger Levy .

Organisationen udvikler også API'er til brugere af indlejrede virtualiseringsprodukter, som kunne muliggøre interoperabilitet mellem applikationer og middleware på tværs af forskellige virtualiseringsmiljøer. Men et større fokus er på at udvikle standardiserede værktøjer, der udnytter API'erne. Nogle brugere af de nye API'er som Mentor, Intel, Freescale og Texas Instruments har for eksempel alle udviklet deres egne fejlfindings- og sporingsværktøjer, siger Levy.

"Nettoresultatet for værktøjsleverandører er så meget, som de ville Som en one-stop-butik er det umuligt. Ingen enkeltleverandør kan tilbyde alt, hvad deres kunder har brug for, og alligevel skal kunderne kunne udvikle og forstå dette forskellige system, siger Levy.

Der er andre multicore programmeringsmodeller som OpenMP og OpenCL, men de er alle designet til at være "synergistiske" snarere end konkurrencedygtige, siger Polycores Brehmer. OpenMP API er designet til at skrive parallelle applikationer på maskinniveau, mens OpenCL er en programmeringsramme til parallel udførelse af opgaver på tværs af multicore-processorer, herunder CPU'er og grafikprocessorer.

Medlemmerne Multicore Association omfatter også IBM, Samsung og Advanced Micro Devices.