ESMF (Earth System Modeling Framework) er et program for å bygge høy ytelse, fleksibel infrastruktur programvare for å øke brukervennlighet, ytelse portabilitet, interoperabilitet og gjenbruk i klima, numerisk værvarsling, data assimilering, definerer The ESMF en arkitektur for komponering komplekse, kombinert modellering systemer og inkluderer datastrukturer og verktøyene til å utvikle individuelle modeller.
Den grunnleggende ideen bak ESMF er at kompliserte programmer bør brytes opp i mindre biter, eller komponenter. En komponent er en programvareenhet preparat som har en koherent funksjon, og en standard telefongrensesnitt og opptreden. Komponentene kan settes sammen for å skape flere applikasjoner og forskjellige implementeringer av en komponent kan være tilgjengelige. I ESMF, kan en komponent være et fysisk domene, eller en funksjon som en kobling eller I / O-systemet.
ESMF omfatter også verktøysett for å bygge komponenter og programmer, for eksempel regridding programvare, kalender ledelse, logging og feilhåndtering, og parallell kommunikasjon.
Figuren nedenfor viser ESMF komponenter i praksis. Det er et diagram av strukturen i NASA GEOS-5 Atmospheric Global klimamodell, bygd opp fra grunnen av ved hjelp ESMF. Hver av boksene er en ESMF komponent, inkludert koplerne. Den hierarkiske treet av komponentene kan bli "klippet" på forskjellige nivåer, slik at hele pakken fysikk kan erstattes, eller en enkelt parametriseringen. Hver komponent er potensielt "swap".
Egenskaper :
- Full Fortran 90 grensesnitt, delvis C / C ++ grensesnitt
- Fortran 90 Reference Manual og brukerhåndbok
- Kjører på de fleste høy ytelse parallell databehandling plattformer, inkludert IBM, mange Linux-varianter, Cray, Compaq, mer (se her for en fullstendig liste)
- Støtter MPI, OpenMP og hybrid brukerkoder
- 2500 + tester buntet med kildedistribusjonen
- Gratis brukerstøtte
- Aktiv bruker fellesskapet
- Overbygg for kobling komponentene i klimasystemet:
- Komponent, stat og Coupler programvare som brytes brukerkode med minimal overhead
- Enkle drivere som brukere kan endre
- Sekvensiell eller samtidig utførelse av komponenter
- Enkelt kjørbar evne
- Begrenset flere kjør evne
- Infrastruktur for bygging av komponentene i klimasystemet:
- Time Manager som inkluderer gregorianske, 360 dager, no-sprang, Julian, og andre kalendere, samt et bredt spekter av tidsfunksjoner
- Datastrukturer for lagring og manipulering av matriser, Fields, og Bundles of Fields på samme rutenettet.
- Parallelle datakommunikasjon og regridding programvare
- Message loggeverktøy
- Ressurs filbehandler
Hva er nytt i denne utgaven:
- En feiltolerant forlengelse til ESMF_GridComp og ESMF_CplComp grensesnitt har blitt gjennomført.
- Mange forbedringer og feilrettinger.
Hva er nytt i versjon 3.2.0r:
- Denne versjonen endrer koden for å aktivere bakoverkompatibilitet og legger til støtte for PGI 11.x kompilator versjon på Linux / PC og Cray XT-plattformen.
Hva er nytt i versjon 3.1.0rp2:
- Lagt til støtte for replikert dimensjoner i Field. A & quot; 0 & quot; oppføring i gridToFieldMap argument i ESMF_FieldCreate () og ESMF_FieldSetCommit () indikerer at en Grid dimensjon er ikke en del av feltet. I stedet feltet er kopiert over hele DES langs den tilsvarende Grid dimensjon.
- Overbelastet ESMF_FieldCreate () til å akseptere en Fortran rekke pekeren og bevare sine egenskaper (for eksempel grenser og evne til å deallocate).
- Overbelastet ESMF_FieldSetCommit () til å akseptere en Fortran rekke pekeren og bevare sine egenskaper (for eksempel grenser og evne til å deallocate).
- The Grid støtter nå et ESMF_INDEX_USER alternativ for indexflag. Dette gjør at brukeren eksplisitt å sette den nedre grensen av sin egen indeks plass. Dette er nødvendig når du oppretter et felt fra en Fortran rekke pekeren med ikke-standard indeksering.
- Overbelastet ESMF_ArrayCreate () til å akseptere en Fortran rekke pekeren og bevare sine egenskaper (for eksempel grenser og evne til å deallocate).
- Optimalisert ESMF_ArraySMM () og ESMF_ArrayBundleSMM () runtime ytelse, skalerbarhet og minnebruk.
- Lagt til støtte for optimalisert kommunikasjon for Arrays med forskjellige distribusjoner, dimensjoner og størrelser i samme ArrayBundle.
- Lagt til støtte for Des med null elementer i DistGrid, Array og Field.
- Made localDe argument valgfrie i ESMF_ArrayGet () og ESMF_FieldGet () metoder der ikke er forbudt ved overbelastning restriksjoner.
- Alarmer satt til å ringe på timestep 0, på ESMF_ClockCreate (), nå ringer riktig.
- Alarmer nå ringe ordentlig for en klokke i ESMF_MODE_REVERSE.
- Alarmer nå ringe ordentlig for en klokke ved hjelp av en negativ timestep.
- Lagt Standard pekerstørrelse overstyringsfunksjonen til å bygge systemet i bruk nye miljøvariabler ESMF_F90_PTR_BASE_SIZE og ESMF_F90_PTR_PLUS_RANK.
Hva er nytt i versjon 3.1.0rp1:.
- Lagd attributter til Grid klassen
- Lagd attributter til Array klassen.
- Lagd minIndex og maxIndex argumenter til ESMF_GridGet (). Disse argumentene gjelder for den første flisen.
- Lagd minIndexPDimPDe og maxIndexPDimPDe argumenter til ESMF_DistGridGet ().
- Lagd ESMF_GridMatch () metode for å sammenligne to Grid-objekter.
- En ny del i brukerhåndboken med tittelen & quot; Sette opp ESMF å kjøre Test Suite Programmer & quot; ble lagt som skisserer hvordan brukerne kan angi sine egne mpirun skript. ESMF nå konsekvent bruker innstillingen av miljøvariabelen ESMF_MPIRUN å lansere den medfølgende test suite og eksempel søknader.
- De følgende kjente bugs har blitt fikset.
Kommentarer ikke funnet