Softwareudvikling til fremtidens heterogene processor

Senest opdateret d. 23/3-2012
Alexandra Instituttet
Resultatkontrakt 2013-2015 under temaerne Informations- og Kommunikationsteknologi
Jesper Mosegaard
Forsknings- og Innovationschef

Før årtusindeskiftet blev software automatisk hurtigere bare man købte en ny processor. På grund af basale fysiske begrænsninger i processor-design er dette ikke længere tilfældet – og man er gået nye veje med multi- og many-core processorer som er bredt tilgængelige i dag. Fremtidens beregningsplatform, kaldes heterogenous processors, og repræsenterer i særlig grad en udfordring for softwareudvikling. I denne resultatkontrakt opbygges serviceydelser indenfor en bred række af tilgange til parallel programmering af heterogene systemer – fx Microsoft C++ AMP og OpenCL.

Ny viden og serviceydelser
Heterogeneous computing er den næste store udfordring indenfor softwareudvikling, der søger at udnytte al den tilgængelige beregningskraft. Udviklingen af processorer er skiftet fra rent at medføre hastighedsforbedringer uden nogen indflydelse for softwareudviklingen til nu at kræve store forandringer i de basale tilgange til udvikling af effektiv software. Chipfabrikanter mødte omkring årtusindeskiftet flere fysiske begrænsninger for den daværende måde at skabe hurtigere chips på og skiftede derfor strategi til at øge antallet af beregninger, der kunne laves samtidigt. I første omgang på ensartede enheder (multi- og many-core), og senest på meget forskelligartede enheder, men stadig i parallel – altsammen for at presse så meget ydelse ud af det tilgængelige areal på en chip. Dette seneste bud på fremtidens beregningsplatform kaldes heterogenous processors og repræsenterer i særlig grad en udfordring for softwareudvikling, da selve udviklingstilgangen skal ændres – samt at der i denne brydningstid er en lang række forskelligartede bud på både programmeringsprog, biblioteker, metoder og principper. Denne resultatkontrakt vil opbygge serviceydelser, der samlet vil styrke den danske softwareudvikling og den internationale konkurrenceevne.
I resultatkontrakten opbygges serviceydelser indenfor en bred række af tilgange til parallel programmering af heterogene systemer – fx Microsoft C++ AMP og OpenCL. Heriblandt fastholdes denne erfaring i softwaremoduler og egenudviklede softwarebiblioteker i så høj grad som muligt, så disse serviceydelser bliver nemt tilgængelige for danske softwareudviklere. Der udvikles serviceydelser indenfor tre følgende kategorier rettet specielt mod heterogene multi- og many-core processorer; Arkitekturdesign, Softwareudviklingsaktiviteter og Rådgivning/undervisning.

Centrale aktiviteter
Vi vil opbygge konkrete softwareudviklings-kompetencer i heterogene multi-core systemer, softwarebiblioteker og programmeringssprog ved at indgå i softwareudviklingsforløb hvori sådanne anvendes. Sideløbende hentes nyeste viden hjem, og der opbygges generaliseringer af de anvendte teknikker i best-practices.  Vi vil udvikle moduler, der indkapsler oftest anvendt funktionalitet på en generaliseret form.
Vi vil bl.a. afvikle aktiviteter med fokus på følgende forskellige teknologier tilgængelige i dag til delmængder af heterogene beregninger: OpenCL, CUDA, C++ AMP, GPU Ocelot, Direct Compute, Parallel Patterns Library, Microsofts Accelerator, MPI, og OpenMP. Målet er således at opnå erfaring med de enkelte teknologier samt at få et overblik over fordele, ulemper, muligheder for samspil og bud på det fremtidige roadmap for området.
De generelle teknologier afsøges indenfor domæner med særligt potentiale for at udnytte heterogene beregninger – således at disse domæner i sig selv er mål for højtspecialiserede serviceydelser i form af konsulentydelser og software.  Disse domæner er

  • Geometriske beregninger.
  • Fysisk baserede simuleringssystemer.
  • Softwarearkitektur, herunder hvordan sådanne formes og beskrives til parallelle heterogene processorer.
  • Kryptering og sikkerhedsberegninger.
  • Effektiv udførsel og strømforbrug i embedded devices, herunder valg af processor type til forskellige beregninger.
  • Mobile enheder, herunder klient og server kommunikation og deling af beregninger.

En central aktivitet er forretningsudvikling af serviceydelser igennem case-samarbejde med repræsentanter fra målgruppen samt mere generelle vidensudvekslings- og formidlingsaktiviteter med en større række virksomheder.

Rationale for indsatsen
Før årtusindeskiftet blev software automatisk hurtigere, hvis bare man købte en ny processor. På grund af basale fysiske begrænsninger i processor-design er dette ikke længere tilfældet – og man er gået nye veje i kraft af multi- og many-core processorer, som er bredt tilgængelige i dag. Det er svært for softwarevirksomheder at udnytte disse processorer optimalt, da tilgangen er væsentligt forskelligt fra programmering af den enkelt-kernede processor. Udviklingen kræver nu både kompetencer i parallel programmering, konkret erfaring med mange forskellige typer processorer, overblik over de forskellige alternative programmeringsmodeller og sprog, viden om målgrupper og forventede tilgængelige processorer, samt konkrete forventninger til udviklingen og trends indenfor processorer – samt udbredelsen af disse.
Programmering af heterogene processorer er særligt vanskeligt idet man som programmør eksplicit skal være opmærksom på de særlige karakteristika ved hver enkelt type processor – fordi de enkelte beregningsenheder nu er forskelligartede. Koden bliver mere kompleks og mindre portabel til andre heterogene processorer.
Disse udfordringer er identificeret bredt i både forskningsmiljøer og erhvervsliv– og Alexandra Instituttet har opbygget serviceydelser indenfor en speciel type af processorer (GPGPU) i ”Massive Data” resultat-kontrakten (2009-2012). Vi har i løbet af resultatkontrakten om Massive Data identificeret en ny trend, med stor potentiel indvirkning for software udvikling - nemlig ”heterogenous processors” (f.eks. AMD Liana, nVidia Kepler).
Målgruppen for denne aktivitet er danske virksomheder der udvikler software. Der er næsten 2400 virksomheder indenfor softwareudvikling (fraregnet enkeltmandsvirksomheder). Derudover er software-udvikling en integreret del af mange andre brancher i Danmark, og denne resultatkontrakt rækker derfor langt ud over kun at sigte på it-branchen. Den store udfordring for it-udviklere er at følge med i den store udvikling i processorer siden den første multi-core processor – særligt fordi der endnu ikke er eet rigtigt svar. Der er således brug for en samlet og uafhængig opbygning af viden om dette område – som kan rådgive danske softwarevirksomheder, udvikle fokuserede moduler og fremme en hurtig udrulning af fremtidens teknikker til fuld udnyttelse af fremtiden hardware.
En effektiv udnyttelse af den tilgængelige beregningskapacitet samt stabile systemer på fremtidens hardware skaber bedre IT-produkter med hurtigere respons, bedre skalering, kortere svartider og færre fejl. Der benyttes IT i mange brancher – hvor bedre performance på softwaren kan være en afgørende konkurrence-parameter for den samlede produktivitet. Som påpeget i Forsk 2020, Digitale muligheder og løsninger, er IKT ansvarlig for ca. en tredjedel af væksten i produktion i Danmark – og er afgørende for at kunne øge produktiviteten.

Mulige samarbejdspartnere
I løbet af projektet udføres en række pilottests med it-virksomheder, hvor eksisterende software-moduler analyseres. Resultatet af disse analyser vil spille ind i opbygningen af en generaliserbar viden om effektive software arkitekturer, api’er og programmeringssprog til effektiv udnyttelse af de fremtidige heterogene beregningsresourcer. Det forventes at etablere bredt samarbejde til de Datalogiske Institutter i Danmark med forskningsinteresser indenfor high performance computing og softwarearkitektur.

9 kommentarer

Herunder er indlæg og kommentarer fra interessenter på aktiviteter og aktivitetsforslag.

apek
Fredag d. 4/5-12 kl. 21:06

Spændende og relevant projekt der har fokus på udfordringer som kan bidrage til at øge konkurrencevnen hos danske virksomheder såfremt udfordringer og barrierer i software udvikling til moderne heterogene chips kan reduceres.
Mvh
Allan P. Engsig-Karup
Lektor, Scientific Computing, DTU Informatik

sthrysoe
Tirsdag d. 8/5-12 kl. 10:20

CABRA er en virksomhed, der har fokus på at optimere flow-simulationer, så simulationstiderne bliver klinisk relevante og kan hjælpe til at forbedre risiko-stratifikationen hos bl.a. patienter i risiko for at få blodpropper i hjernen. Som følge heraf vil enhver teknologi og know-how, som kan optimere og forbedre hastigheden være endog særdeles velkommen.
Ligeledes ville evnen til dynamisk at kunne visualisere flow, hvilket kunne være en mulighed med forbedret processorudnyttelse, kunne muliggøre virtuelle simulationer af forskellige kirurgiske indgreb i hjerte-kar-systemet, der vil give et kraftigt forbedret klinisk indblik i, hvorledes den enkelte patient skulle opereres, såkaldt Personalized Medicine.

Såvel flow-simulationer hos potentielle blodpropspatienter, som flow-visualiseringer til planlægning af kirurgiske indgreb på fx spædbørn med medfødte misdannelser i hjerte-kar-systemet er forretningsområder, som CABRA er interesseret i. Dette forslag vil kraftigt kunne forbedre CABRAs forretningsmæssige potentiale, hvorfor vi helhjertet støtter projektet.

Mvh
Samuel Thrysøe
CABRA

Mikael Christensen
Onsdag d. 9/5-12 kl. 14:35

I Molegro arbejder vi med biokemiske simulationer af hvordan lægemidler binder til proteiner. Det er beregningstunge problemer, og vi har brugt mange ressourcer på at arbejde med at accelerere vores metoder, bl.a. vha GPU'er (CUDA og OpenCL). I visse tilfælde er det lykkedes for os at få vores metoder til at afvikles 20x hurtigere på en GPU end en CPU.

Det er ingen tvivl om, at det ville være en stor gevinst, hvis man kunne gøre det lettere at skrive software, der er i stand til at udnytte den regnekraft, som moderne super-parallelle enheder tilbyder. Som det ser ud i dag, er vi nødt til at udvikle særskilte versioner af vores algoritmer til afvikling på fx CPU og GPU. En forenet tilgang, hvor man kun behøvede skrive koden en gang, ville gøre udvikling og vedligeholdelse af softwaren betragteligt nemmere, samt fjerne afhængigheden af leverandør-specifikke teknologier som CUDA.

Så det foreslåede projekt er bestemt relevant og vi så det gerne realiseret!

Mvh,
Mikael Hvidtfeldt Christensen,
Molegro

Peter Dahl
Torsdag d. 10/5-12 kl. 07:43

Hejsa

Jeg syntes at projektet lyder meget relevant for vores virksomhed. I vores virksomhed har vi nogle specielle udfordringer med at kunne anvende GPU´er (eller fremtidens heterogene processor). Disse drejer sig primært om at få designet nye algoritmer der udnytter disse optimalt samt at finde tid til at oversætte vores store algoritme kodebase til disse nye processore.

Det foreslåede projekt vil kunne hjælpe os med disse problemer og er derfor yders relevant for vores virksomhed.

Med Venlig Hilsen
Peter Dahl, Software udvikler
3Shape TRIOS A/S

roald
Torsdag d. 10/5-12 kl. 08:41

CLC bio leverer både software og hardware løsninger til en bred vifte af internationale forskningscentre indenfor bioteknologi. Et af vores primære fokusområder er udvikling af algoritmer som kan analysere den enorme mængde data som moderne high-throughput sekvenseringsmaskiner genererer i samme tempo som data bliver tilgængeligt. I mange tilfælde er beregningskraft dog en begrænsende faktor og selv med udnyttelse af moderne homogene multi-core systemer til acceleration af algoritmer, er der stadigvæk analyser som kræver flere uger at udføre.

Vi har tidligere benyttet FPGAer til at accelererer algoritmer, og med den hurtige udvikling indenfor GPGPUer er disse også blevet interessante for os. Begge typer processorer har fordele og ulemper som gør at flere typer processorer ofte må kombineres for at løse et problem effektivt, hvilket medfører at både udvikling og vedligeholdelse af software bliver mere kompleks og tidskrævende. Indenfor bioteknologi, som er et felt der udvikler sig hastigt i disse år, skal udviklingsprocessen helst være kort samtidig med at softwaren skal virke på mange forskellige platforme. Hvis vi hos CLC bio skal satse på heterogene processorer, er det derfor vigtigt at tilgangen til disse bliver gjort nemmere fx gennem udviklingen af standardiserede APIer og softwarebiblioteker.
Vi ser frem til at få disse kompetencer udviklet i Danmark, på Alexandra Instituttet.

Med venlig hilsen

Roald Forsberg
Vice President, Research and Development
CLC bio A/S

Jesper Mosegaard
Torsdag d. 10/5-12 kl. 22:17

Kære Allan

Tak for din interesse og støtte til projektet. Med jeres forskningsaktiviteter i GPU-Lab har I uden tvivl mærket på egen krop hvor svært det kan være at udnytte denne del af en (fremtidig) heterogen processor fuldt ud - men også det store potentiale der er for hastighedsforbedringer, og afledt heraf en øget konkurrenceevne.

Det er oplagt at vi sammen kan bringe jeres forskningsresultater på området ud i bred anvendelse.

Mvh. Jesper Mosegaard

kstokbro
Fredag d. 11/5-12 kl. 13:26

QuantumWise er en SME som udvikler avancerede software til modellering af materialeegenskaber på atomar skala. Simuleringerne er meget beregningstunge og effektive algoritmer er en vigtig konkurrence parameter.

Vi har i de sidste par år fulgt udviklingen omkring nye hardware teknologier, og vi kan se at mange konkurerende produkter er begyndt at eksperimentere med disse teknologier. Det er ikke et spørgsmål om vi skal anvende disse teknologier i vores produkt, kun et spørgsmål om hvornår vi skal lave investeringen.

Vores timing afhænger bla af hvornår der er den fornødne ekspertise i Danmark som vi kan trække på, og jeg hilser det derfor velkommen at Alexandra institutet nu satser på dette område, vi har nemlig gode erfaringer med vidensoverførsel fra andre samarbejder med Alexandra institutet.

Kurt Stokbro
Adm. Direktør
QuantumWise A/S

Daniel Langhoff
Onsdag d. 16/5-12 kl. 10:01

Brainreader ApS arbejder med udvikling af CAD (computer aided diagnostic) systemer, der baserer sig på meget tunge analyser af 3D MR hjerneskanninger. Kompleksiteten af disse beregninger gør optimeringer på enkelt- og multi-core systemer meget begrænsede, og derfor vil den fremtidige udvikling inden for denne branche helt givet ligge indenfor udnyttelse af homogene processor.

Vores virksomheds konkurrenceevne er på mange plan påvirket af hastigheden af vores billedeanalyse, og derfor følger vi udvikling inden for dette felt tæt. vi ser det foreslåede projekt som yderst relevant.

Mvh,
Daniel Langhoff
Brainreader ApS

michael_hinnerupnet
Fredag d. 25/5-12 kl. 15:41

Hinnerup Net A/S har forskellige projekter hos en række større virksomheder. Heriblandt har vi deltaget i udarbejdelsen af en webservice baseret, distribueret og skalerbart 3D/GPGPU optimerings- og renderings-systemarkitektur i samarbejde med Alexandra Instituttet.

Vores erfaring er, at programmører i mange virksomheder har fint styr på basal multitrådet programmering (fx. dual og quad cores), men at det "kniber" når der snakkes om adskillige hundrede til tusinde CPU og/eller GPU kerner. Ligeledes er der gode muligheder for håndtering, processering samt beregning af mindre til store datastørrelser omkring MB og GB størrelsen, men typisk er der problemer eller ihvf. udfordringer når der er tale om TB og PB klasserne og opefter. Her mener vi at innovationsprojektet kan komme ind og gøre en forskel og være med til at øge kompetence- og konkurrenceniveauet for Danmark's IT virksomheder.

Der er et utal af områder hvor projektet vil kunne styrke nye som eksisterende IT projekter, ved øget performance og nye muligheder for beregninger man ellers ville have afskrevet som for tunge og uhåndterbare.

Mange hilsner,
Michael F. S., Direktør
Hinnerup Net A/S