Til hovedinnhold

Nytt språk gir kjappe simuleringer

Nytt språk gir kjappe simuleringer

Publisert 20. januar 2015
Forskere har laget et helt nytt programmeringsspråk som gjør at programmeringer og simuleringer kan gå raskere.
Main intro image
Det nye språket ligner på matematikkens språk. Forskerne greier dermed å splitte arbeidsprosessen og det tar kortere tid å utvikle en simulator. Som denne modellen som beregner væsketrykk i en modell av Norne-feltet. Ill.: SINTEF.

Når forskere skal etterligne prosesser i en større eller mindre del av virkeligheten, må de bruke simulatorer eller “etterlignings-modeller”. For å få modellene til å gjøre det de skal, må det ligge en programkode bak.
Programmering er tidkrevende, og det kan ta mange år å lage en enkelt simulator. Dette arbeidet vil forskere nå forenkle.

– Vi har laget et språk som ligner mye på matematikkens språk forteller André Brodtkorb på SINTEF. –Dermed greier vi å splitte arbeidsprosessen slik at det tar kortere tid å utvikle en simulator. En matematiker kan konsentrere seg om det han eller hun er best på, nemlig området der simulatoren skal benyttes. Og de som er gode på programmering, sitter og jobber med “oversetteren” slik at den oversatte koden kan kjøres raskere – uten å tenke på bruken.

Fakta:

  • Operativsystemet Microsoft Windows er hovedsakelig skrevet i programmeringsspråket C++ . Java er et annet kjent språk.
  • Prosjektet "Simulators that write themselves" er et 2-årig prosjekt internfinansiert av SINTEF IKT, og ble avsluttet ved nyttår.
  • Språket forskerne har laget, kaller de Equelle. På hjemmesiden http://equelle.org/ kan man leke med språket i nettleseren.

Simulering av olje og vann

Ved SINTEF-avdelingen Anvendt matematikk, utvikler forskerne metoder og nye måter å beregne alt fra værvarsel for flyplasser til kampoppsett i tippeligaen.

I dette prosjektet konsentrerer de for tiden om to caser: Hvordan olje strømmer i et reservoar, og hvordan flombølger sprer seg i et terreng.
Kildekodene brukes til å lage simuleringsverktøy som kan forutsi hva som skjer med oljen i reservoaret eller hvor flommen blir størst.

– Et reservoar er en stiv svamp med olje inne i seg, forklarer Brodtkorb. –For å simulere utvinning av olje, deler vi reservoaret inn i små biter eller celler, og beskriver hvordan oljen flytter seg fra celle til celle.

Simulering av trykkfordeling i Nornefeltet utenfor Helgeland. For å simulere utvinning av hydrokarboner, deler forskerne reservoaret inn i celler, og beskriver hvordan oljen flytter seg fra celle til celle. Dataene til modellen er gjort tilgjengelige av Statoil og NTNU/IO senteret. Ill: SINTEF.

Simulering av trykkfordeling i Nornefeltet utenfor Helgeland. For å simulere utvinning av hydrokarboner, deler forskerne reservoaret inn i celler, og beskriver hvordan oljen flytter seg fra celle til celle. Dataene til modellen er gjort tilgjengelige av Statoil og NTNU/IO senteret. Ill: SINTEF.

Klikk for å åpne

Ting tar tid

Når det skal utvikles en simulator, må ofte flere mennesker inn for å utvikle programkoden som kan fortelle datamaskinen hva den skal utføre: Matematikere, fysikere, numerikere og programmerere.

–Problemet er at alle har sin kjernekompetanse. De som skriver kildekoden til en simulator, har ikke nødvendigvis full oversikt over matematikken/fysikken og vice versa. Og når folk fra “ulike lag” skal snakke sammen og bli enige, oppstår det misforståelser og det tar tid, sier Brodtkorb.

Store softwareselskap har gjerne all ekspertise samlet innenfor sine vegger. Men det meste av forskningskoder blir utviklet av enkeltpersoner eller små grupper. –De trenger hjelp, mener Brodtkorb.

Se video: https://www.youtube.com/watch?v=lf9BJ2UU3Tw

 

Fjerner sikkerhetsfeil

Det er ikke noe nytt i seg selv å lage simulatorer. Det nye forskerne vil tilføre, er å ta i bruk et domene-spesifikt språk; et spisset språk som tar for seg ett begrenset bruksområde. Med dette språket kan forskerne lage nye simuleringsprogrammer, og samtidig garantere at koden er rett.

Innenfor programmering er det for eksempel et klassisk problem å velge feil enhet på fysiske størrelser. Da Nasa sendte opp Mars Climate Orbiter for å studere atmosfæren på Mars, krasjet den. Årsaken var at selskapet Lockheed Martin hadde laget en simulering med engelske enheter mens Nasa selv forventet metriske enheter.

– Endringen innebar at 327 millioner dollar forsvant ut av vinduet, bemerker André Brodtkorb. –Dette har vi sikret oss mot. Vi skriver for eksempel inn i kildekoden “denne enheten er i meter”. Om noen da prøver å legge inn en enhet som “fot”, vil de få en korreks, sier Brodtkorb.

Da Nasa sendte opp Mars Climate Orbiter for å studere atmosfæren på Mars, krasjet den. Årsaken var at selskapet Lockheed Martin hadde laget en simulering med engelske enheter mens Nasa selv forventet metriske enheter. Ill: Wikipedia Mars Climate Orbiter

Da Nasa sendte opp Mars Climate Orbiter for å studere atmosfæren på Mars, krasjet den. Årsaken var at selskapet Lockheed Martin hadde laget en simulering med engelske enheter mens Nasa selv forventet metriske enheter. Ill: Wikipedia Mars Climate Orbiter

Klikk for å åpne

Et annet problem er å holde styr på alle de millionene av celler i en simulering. I farten er det lett å blande sammen og ta feil av celler.

– Dersom resultatet som kommer ut likevel ser riktig ut, kan det gå riktig galt, slår Brodtkorb fast, – for da kan en beslutningstaker ta avgjørelser på sviktende grunnlag. Også en feil som dette elimineres av vårt system.
Nå søker forskerne penger til en videreføring av prosjektet.

–Vi har stor tro på innholdet i dette prosjektet. Det nye programmeringsspråket vårt er lett å bruke. Det tar kortere tid å lage programmer – og feilkilder er fjernet. Tre gode salgsargument!

Denne saken er hentet fra Gemini.no - Forskningsnytt fra NTNU og SINTEF