BEDRIFTSTEKNOLOGI

Ny Intel «runtime» vil avlaste OS-er

Intels forskere ser for seg nye modeller for forholdet mellom maskin- og programvare.

16. aug. 2007 - 10:54

På forskningsbloggen til Intel er det kommet et innlegg som gjør rede for ny tenking rundt hvordan man skal få maksimalt ut av framtidens prosessorarkitekturer med mange titalls kjerner: Multi-core research update: the intimate coupling of software & hardware.

Innlegget varsler om åtte kommende artikler på Intel Technology Journal som til sammen gir et bilde av en ny modell for samspill mellom maskinvare og programvare.

En grunnleggende problemstilling er: Hvordan sørge for at systemer som kjører mange store og små applikasjoner samtidig, alle med mange tråder, kan gi maksimal ytelse på morgendagens flerkjernede prosessorer? Intel arbeider, som kjent, med en arkitektur kalt Tera-scale, der en prosessor kan ha for eksempel 80 kjerner.

En annen er: Hvordan effektivisere og forenkle arbeidet med å utvikle applikasjoner som er i stand til å utnytte flerkjernede prosessorer maksimalt?

I arbeidet med å avklare disse problemstillinger oppstår nye modeller for forhold mellom maskin- og programvare.

    Les også:

Framgangsmåten som Intel har valgt for å finne svar på slike spørsmål, er nytt: Man tenker seg en typisk framtidig bruk av et gitt system, finner fram til hvilke utfordringer det stiller til maskinvaren, og hvordan maskinvaren skal legges opp for å møte disse utfordringene. Så går man tilbake til programvaren for å optimere den i forhold til nytenkingen i maskinvaren.

I bloggen illustreres dette slik:

Et eksempel på tenkt framtidig anvendelse er å overføre en typisk e-handelsinnrettet datasentral med 133 serverprosessorer, til én Tera-scale prosessor med 32 kjerner og fire tråder per kjerne.

En simulering av hvordan dette vil virke, avdekker behov for endringer i maskinvaren. I dette tilfellet framhever Intel tre endringer:

  1. en modell for hierarki i en delt cache
  2. behov for cache i et fjerde nivå, med høy båndbredde
  3. en ordning for å optimalisere hvordan mange tråder skal kunne dele cache uten tap av tjenestekvalitet

En annen sentral problemstilling for Intels forskere, er at programmering med tanke på parallell eksekvering av samtidige tråder på flerkjernede prosessorer stiller store utfordringer.

Dette problemet stikker svært dypt. Forsøk og simuleringer med tenkte belastninger avdekker nemlig at de beste serielle algoritmene gir dårlig skalerbarhet når de skal utføres parallelt. Alternative algoritmer kan gi dårligere ytelse når de kjøres på én kjerne, men langt bedre ytelse når man har et stort antall kjerner til rådighet.

Arbeidet viser blant annet at det ikke er hensiktsmessig å behandle flerkjernede prosessorer på samme måte som tradisjonelle systemer med et tilsvarende antall prosessorer.

En idé som Intel arbeider med for å løse dette problemet er en egen runtime for flerkjernede prosessorer, døpt McRT («multi-core runtime»).

En viktig egenskap ved McRT er at den erstatter tjenester på operativsystemnivå med tjenester på prosessornivå, som programmererne kan forholde seg til direkte. Dette sparer systemet for kostbare overganger mellom prosessor og operativsystemet.

Intel bruker betegnelsen «primitiver» om disse tjenestene. De omfatter tidsplanlegging (scheduler), minnehåndtering, synkronisering og abstraksjoner av tråder. Ifølge bloggen er resultatene hittil svært oppløftende: En applikasjon som benytter seg av denne runtime stack skalerer tilnærmet lineært med mer enn 64 maskinvaretråder.

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.