Numeriska instabiliteter i klimatmodeller

Det är ett känt faktum att olika klimatmodeller, även om de har samma initialvärden, ger olika resultat. Ett välkänt exempel är IPCCs spagettigraf över olika klimatmodellers beräknade framtidsscenarier.

Bilden visar IPCCs klimatmodellers framtidsscenarier jämfört med verkliga mätningar (satellit [kvadrat] och väderballonger [bollar]). Bilden visar hur modellerna grovt överdriver en framtida uppvärmning.

Bloggen WUWT gav en intressant länk till en ny publikation, som har genomgått s.k. peer review, som behandlar numeriska fel i beräkningarna.

Forskarna undersökte vad som händer då man kör samma klimatmodell på olika datorplattformer. Det visade sig att trots att initialvärdena var exakt lika för de olika datorsystemen så divergerade körningarna rätt snabbt d.v.s. resultaten från de olika körningarna blev allt mer olika. Hur är detta möjligt? Räknar datorerna fel?

Orsaken till divergensen är något som kallas avrundningsfel som är en följd av att tal i en dator oftast uttrycks med ett begränsat antal decimaler. Antalet decimaler en dator jobbar med kan vara i storleksordningen 16 decimaler plus en exponent som anger hur decimaldelen skall skalas. Vid beräkningar är är det speciellt riskabelt att beräkna skillnaden mellan två nästan lika stora tal.

Ett exempel:

Antag att vi gör en beräkning på en dator där ett tal uttrycks med 8 decimaler. Vi stöter på en situation där vårt program beräknar skillnaden mellan två stora tal. Sekvenserna xxxxxxx och yyyyyyyy representerar information som inte ryms i talrepresentationen.

T = 3173333.3xxxxxxx – 3173332.1yyyyyyyy = 1.2

Vi har plötsligt gått från 8 siffror till en två.

Då vi subtraherar små tal från stora tal kan motsvarande problem dyka upp. Antag igen att vi använder en dator med 8-siffrors talrepresentation och att vi i programmet behöver utföra subtraktioner av små tal från ett basvärde:

X = bas – modifikation

X = 10 344 232 – 0.012345

Om vår antagna dator med 8 siffrors talrepresentation utför subtraktionen så får vi:

X = 10 344 232

eftersom det lilla talet vi subtraherade är så litet att det inte påverkar  det första talet över huvudtaget. Om vi har ett komplicerat program som miljontals gånger utför motsvarande beräkningar så kan felen med tiden bli betydande.  Problem av ovanstående typ är välkända i datavetenskapen och det finns många metoder för att minska på felen man får till följd av avrundningsfel. Problemet är dock att många lösningar kräver att man vet hur beräkningarna generellt uppför sig för att man skall kunna optimera beräkningarna på ett vettigt sätt.

Utöver ovanstående avrundningsfel kan det förekomma andra problem då man flyttar en klimatmodell från en beräkningsplattform till en annan. Då man kompilerar modellen för en ny plattform får man andra algoritmer för hur t.ex. olika matematiska funktioner beräknas. Små skillnader i algoritmerna kan ge upphov till intressanta kumulativa fel. Klimatmodeller körs idag i allmänhet på stora processorfarmer d.v.s. programmen körs på hundratals eller tusentals processorer som behandlar olika delar av modellen och sedan skickar mellanresultat till andra processorer där resultaten kombineras. Det är lätt att se att det utgående från ovanstående exempel kan ha betydelse i vilken ordning olika delresultat behandlas.  I t.ex. det senare fallet kan vi ibland ha situationer då det lilla talet har betydelse men att det har betydelse vad man eventuellt har subtraherat tidigare.

Andra orsaker till skillnader är hur beräkningarna optimeras. En kompilator kan t.ex. intelligent arrangera om olika termer i ett uttryck så att de kan beräknas så snabbt som möjligt, naturligtvis under förutsättning att resultatet matematiskt blir detsamma. Om vi har ett komplicerat uttryck så kan vi mycket väl få situationer där olika termers beräkningsordning har betydelse även om uttrycken matematiskt sett är ekvivalenta.

Resultatet av tio dagars körning där man jämförde på vilken höjd olika datorsystem beräknade att 500hPa geopotentialen borde befinna sig. Resultatet blev:

model_CPUs_table2

Vi ser att endast tio dagars simuleringar ger en standardavvikelse på 10 m i den beräknade höjden. En klimatmodell körs äver tiotals år d.v.s. tusentals eller tiotusentals dagar, det är lätt att inse att då endast de numeriska problemen gör att resultaten blir mycket tvivelaktiga.

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: