ESMF (Earth System Modeling Framework) è un programma per la costruzione ad alte prestazioni, l'infrastruttura software flessibile per aumentare la facilità d'uso, portabilità prestazioni, l'interoperabilità, e il riutilizzo in clima, previsione numerica del tempo, l'assimilazione dei dati, il ESMF definisce un'architettura per comporre complessi, sistemi di modellazione accoppiati e comprende strutture di dati e utilità per lo sviluppo di singoli modelli.
L'idea di base è che le applicazioni ESMF complicate dovrebbero essere suddivisi in pezzi più piccoli, o componenti. Un componente è un'unità di composizione software che ha una funzione coerente e un'interfaccia chiamata standard e comportamento. I componenti possono essere assemblati per creare più applicazioni e diverse implementazioni di un componente possono essere disponibili. In ESMF, un componente può essere un dominio fisico, o una funzione come un accoppiatore o sistema di I / O.
ESMF include anche toolkit per la creazione di componenti e applicazioni, come il software regridding, gestione del calendario, la registrazione e la gestione degli errori, e le comunicazioni parallele.
La figura seguente mostra i componenti ESMF in pratica. Esso è uno schema della struttura del modello di circolazione NASA GEOS-5 atmosferica generale, costruita da zero utilizzando ESMF. Ciascuna delle scatole è un componente ESMF, compresi gli accoppiatori. L'albero gerarchico dei componenti può essere "snipped" a diversi livelli in modo che l'intero pacchetto fisica potrebbe essere sostituito, o un singolo parametrizzazione. Ogni componente è potenzialmente "swap".
Caratteristiche :
/ C ++ interfaccia
- Full Fortran 90 interfaccia, parziale C
- Fortran 90 Manuale di riferimento e la Guida per l'utente
- Funziona con la maggior parte delle piattaforme di elaborazione parallela ad alte prestazioni, tra cui IBM, varianti molti Linux, Cray, Compaq, più (vedi qui per l'elenco completo)
- Sostiene MPI, OpenMP e codici utente ibrido
- 2500+ test in bundle con la distribuzione sorgente
- supporto agli utenti libero
- comunità di utenti attivi
- sovrastruttura per i componenti del sistema Terra accoppiamento:
- Component, Stato e software accoppiatore che avvolge il codice utente con un overhead minimo
- Semplici driver che gli utenti possano modificare
- esecuzione sequenziale o concomitante di componenti
- capacità eseguibile Singolo
- capacità eseguibile più limitata li>
- Infrastrutture per la costruzione di componenti del sistema Terra:
- Time Manager che include Gregorian, 360 giorni, no-salto, Julian, e altri calendari, così come una vasta gamma di funzioni di tempo
- Strutture dati per lo stoccaggio e la manipolazione di array, Campi, e fasci di Campi sulla stessa griglia.
- comunicazioni di dati parallele e software regridding
- strumenti di registrazione del messaggio
- file manager di risorse
Cosa c'è di nuovo in questa versione:
- Un'estensione fault-tolerant alle interfacce ESMF_GridComp e ESMF_CplComp ha state attuate.
- Numerosi miglioramenti e correzioni di bug.
Cosa c'è di nuovo in versione 3.2.0r:
- Questa versione modifica il codice per attivare la compatibilità a ritroso e aggiunge il supporto per la versione 11.x compilatore PGI su Linux / PC e la piattaforma Cray XT.
Cosa c'è di nuovo in versione 3.1.0rp2:
- Aggiunto il supporto per le dimensioni replicati in campo. A & quot; 0 & quot; entry nell'argomento gridToFieldMap in ESMF_FieldCreate () e ESMF_FieldSetCommit () indica che una dimensione griglia non fa parte del campo. Invece il campo è replicata in tutti DEs lungo la dimensione griglia corrispondente.
- overload ESMF_FieldCreate () per accettare un puntatore Fortran e preservare le sue proprietà (come ad esempio i limiti e la capacità di rilasciare).
- overload ESMF_FieldSetCommit () per accettare un puntatore Fortran e preservare le sue proprietà (come ad esempio i limiti e la capacità di rilasciare).
- The Grid supporta ora un'opzione ESMF_INDEX_USER per il indexflag. Questo consente all'utente di impostare esplicitamente il limite inferiore del loro spazio indice locale. Ciò è necessario per la creazione di un campo da un puntatore Fortran con indicizzazione non-standard.
- overload ESMF_ArrayCreate () per accettare un puntatore Fortran e preservare le sue proprietà (come ad esempio i limiti e la capacità di rilasciare).
- Ottimizzato ESMF_ArraySMM () e ESMF_ArrayBundleSMM () performance di runtime, scalabilità e utilizzo della memoria.
- Aggiunto il supporto per le comunicazioni ottimizzate per array con diverse distribuzioni, dimensioni e formati nella stessa ArrayBundle.
- Aggiunto il supporto per Des con zero elementi DistGrid, Array e Campo.
- argomento localDe reso facoltativo in ESMF_ArrayGet () e ESMF_FieldGet () metodi Qualora non sia vietato da sovraccarico restrizioni.
- Allarmi impostata per suonare a timestep 0, su ESMF_ClockCreate (), ora suonare correttamente.
- Allarmi ora suonare correttamente per un orologio in ESMF_MODE_REVERSE.
- Allarmi ora suonare correttamente per un orologio con un passo temporale negativo.
- caratteristica dimensione del puntatore di esclusione aggiunta di default per costruire il sistema che utilizza le nuove variabili di ambiente ESMF_F90_PTR_BASE_SIZE e ESMF_F90_PTR_PLUS_RANK.
Cosa c'è di nuovo in versione 3.1.0rp1:.
- Aggiunto attributi alla classe griglia
- Aggiunto attributi alla classe Array.
- Aggiunto minIndex e argomenti MaxIndex a ESMF_GridGet (). Questi argomenti valgono per la prima tessera.
- argomenti Aggiunto minIndexPDimPDe e maxIndexPDimPDe a ESMF_DistGridGet ().
- Aggiunto ESMF_GridMatch () per confrontare due oggetti griglia.
- Una nuova sezione nella Guida per l'utente dal titolo & quot; Impostazione ESMF per eseguire test Suite Applications & quot; è stato aggiunto che delinea come gli utenti possono specificare i propri script mpirun. ESMF ora utilizza sempre l'impostazione di ambiente ESMF_MPIRUN variabile lanciare le applicazioni della suite ed esempi di test in bundle.
- I seguenti noto bug sono stati corretti.
I commenti non trovato