ESMF (Earth System Modeling Framework) is een programma voor het bouwen van high-performance, flexibele software-infrastructuur om het gebruiksgemak te vergroten, de prestaties draagbaarheid, interoperabiliteit en hergebruik in het klimaat, numerieke weersvoorspelling, data-assimilatie, De ESMF definieert een architectuur voor het samenstellen van complexe, gekoppelde modellering systemen en omvat datastructuren en hulpprogramma's voor het ontwikkelen van individuele modellen.
Het basisidee achter ESMF is dat ingewikkelde applicaties up moet worden opgesplitst in kleinere stukken, of onderdelen. Een component is een eenheid van software samenstelling die een coherente functie heeft en een standaard bellen interface en gedrag. Componenten kunnen worden samengesteld om meerdere toepassingen en verschillende implementaties van een component beschikbaar. In ESMF kan een component een fysieke domein, of een functie zoals een koppelaar of I / O-systeem.
ESMF bevat ook toolkits voor het bouwen van componenten en applicaties, zoals regridding software, agendabeheer, logging en error handling, en parallelle communicatie.
Onderstaande figuur toont ESMF componenten in de praktijk. Het is een diagram van de structuur van de NASA GEOS-5 Atmospheric Algemeen circulatiemodel, gebouwd vanaf de grond opgebouwd met behulp van ESMF. Elk vak een ESMF bestanddeel, waarbij de koppelingen. De hiërarchische structuur van componenten worden "geknipt" op verschillende niveaus, zodat het gehele pakket fysica kan worden vervangen, of één parametrisering. Elk onderdeel is potentieel "swappable."
Kenmerken
- Volledige Fortran 90-interface, gedeeltelijke C / C ++-interface
- Fortran 90 Reference Manual en gebruikershandleiding
- Werkt op de meeste high performance parallel computing-platforms, waaronder IBM, veel Linux varianten, Cray, Compaq, meer (zie hier voor de volledige lijst)
- Ondersteunt MPI, OpenMP en hybride gebruiker codes
- 2500+ testen gebundeld met source distributie
- Gratis ondersteuning van gebruikers
- actieve community van gebruikers
- Opbouw voor systeemonderdelen koppeling Aarde:
- Component, staat en koppeling software die gebruikerscode wraps met minimale overhead
- De eenvoudige drivers die gebruikers kunnen aanpassen
- Sequential of gelijktijdige uitvoering van onderdelen
- Single uitvoerbare mogelijkheid
- Limited meerdere uitvoerbare mogelijkheid
- Infrastructuur voor het bouwen van de Aarde systeemcomponenten:
- Time Manager die Gregoriaanse omvat, 360 dagen, no-sprong, Julian, en andere agenda's, evenals een brede waaier van de tijd functies
- Data structuren voor opslag en manipulatie van Arrays, Velden, en Bundels van Velden op hetzelfde net.
- Parallel datacommunicatie en regridding software
- Bericht logging gereedschappen
- Resource file manager
Wat is nieuw in deze release:
- Een fouttolerante uitbreiding van de ESMF_GridComp en ESMF_CplComp interfaces heeft geïmplementeerd.
- Tal van verbeteringen en bugfixes.
Wat is nieuw in versie 3.2.0r:
- Deze versie wijzigt de code om achterwaartse compatibiliteit mogelijk te maken en voegt ondersteuning toe voor de BGA 11.x compiler versie op Linux / PC en de Cray XT-platform.
Wat is nieuw in versie 3.1.0rp2:
- Ondersteuning toegevoegd voor gerepliceerd afmetingen in Field. A & quot; 0 & quot; vermelding in de gridToFieldMap argument ESMF_FieldCreate () en ESMF_FieldSetCommit () geeft aan dat een Grid dimensie is geen onderdeel van het Veld. In plaats daarvan het veld is gerepliceerd in alle DVn langs de overeenkomstige Grid dimensie.
- Overbelaste ESMF_FieldCreate () om een Fortran-array pointer accepteren en bewaart zijn eigenschappen (zoals grenzen en het vermogen om vrijgeven).
- Overbelaste ESMF_FieldSetCommit () om een Fortran-array pointer accepteren en bewaart zijn eigenschappen (zoals grenzen en het vermogen om vrijgeven).
- De Grid ondersteunt nu een ESMF_INDEX_USER optie voor de indexflag. Dit kan de gebruiker expliciet de ondergrens van hun lokale index ruimte. Dit is nodig bij het maken van een veld uit een Fortran-array pointer met niet-standaard indexering.
- Overbelaste ESMF_ArrayCreate () om een Fortran-array pointer accepteren en bewaart zijn eigenschappen (zoals grenzen en het vermogen om vrijgeven).
- Geoptimaliseerd ESMF_ArraySMM () en ESMF_ArrayBundleSMM () runtime prestaties, schaalbaarheid en geheugengebruik.
- Ondersteuning toegevoegd voor optimale communicatie voor Arrays met verschillende distributies, afmetingen en maten in dezelfde ArrayBundle.
- Extra ondersteuning bij DES met nul elementen in DistGrid, Array en Field.
- Gemaakt localDe argument optioneel in ESMF_ArrayGet () en ESMF_FieldGet () methoden waarbij niet door overbelasting beperkingen verboden.
- Wekkers te rinkelen op tijdstap 0, na ESMF_ClockCreate (), nu goed rinkelen.
- Wekkers nu goed rinkelen voor een Klok in ESMF_MODE_REVERSE.
- Wekkers nu goed rinkelen voor een klok met een negatieve tijdstap.
- Toegevoegd standaard aanwijzer grootte override functie om het systeem te bouwen met behulp van nieuwe omgevingsvariabelen ESMF_F90_PTR_BASE_SIZE en ESMF_F90_PTR_PLUS_RANK.
Wat is nieuw in versie 3.1.0rp1:.
- Toegevoegd Attributen om de Grid klasse
- Toegevoegd Attributen om de klasse Array.
- Toegevoegde minIndex en maxIndex argumenten om ESMF_GridGet (). Deze argumenten gelden voor de eerste tegel.
- Toegevoegde minIndexPDimPDe en maxIndexPDimPDe argumenten om ESMF_DistGridGet ().
- Toegevoegde ESMF_GridMatch () methode om twee Grid objecten vergelijken.
- Een nieuw hoofdstuk in de gebruikershandleiding getiteld & quot; Het opzetten van ESMF naar Test Suite Applications & quot draaien; werd toegevoegd dat schetst hoe gebruikers hun eigen mpirun scripts kunt opgeven. ESMF nu gebruikt de instelling van de omgevingsvariabele ESMF_MPIRUN consequent aan de gebundelde testset en bijvoorbeeld applicaties te starten.
- De volgende bekende bugs zijn opgelost.
Reacties niet gevonden