ESMF (Earth System Modeling Framework) adalah sebuah program untuk membangun kinerja tinggi, infrastruktur perangkat lunak yang fleksibel untuk meningkatkan kemudahan penggunaan, kinerja portabilitas, interoperabilitas, dan menggunakan kembali iklim, prediksi cuaca numerik, data asimilasi, ESMF mendefinisikan arsitektur untuk menyusun kompleks, sistem pemodelan digabungkan dan termasuk struktur data dan utilitas untuk mengembangkan model individu.
Ide dasar dibalik ESMF adalah aplikasi yang rumit harus dipecah menjadi potongan kecil, atau komponen. Komponen adalah unit komposisi perangkat lunak yang memiliki fungsi yang koheren, dan antarmuka panggilan standar dan perilaku. Komponen dapat dirakit untuk membuat beberapa aplikasi, dan implementasi yang berbeda dari komponen mungkin tersedia. Di ESMF, komponen mungkin domain fisik, atau fungsi seperti coupler atau I / O sistem.
ESMF juga mencakup peralatan untuk membangun komponen dan aplikasi, seperti regridding software, manajemen kalender, penebangan dan penanganan error, dan komunikasi paralel.
Gambar di bawah menunjukkan komponen ESMF dalam praktek. Ini adalah diagram struktur NASA GEOS-5 Atmospheric General Circulation Model, dibangun dari bawah ke atas menggunakan ESMF. Masing-masing kotak merupakan komponen ESMF, termasuk skrup. Pohon hirarki komponen dapat "dipotong" pada tingkat yang berbeda sehingga seluruh paket fisika bisa diganti, atau parameterisasi tunggal. Setiap komponen berpotensi "swappable."
Fitur :
- Penuh Fortran 90 antarmuka, parsial C / C ++ antarmuka
- Fortran 90 Reference Manual dan Panduan Pengguna
- Berjalan pada kebanyakan platform komputasi paralel kinerja tinggi, termasuk IBM, banyak varian Linux, Cray, Compaq, lebih (lihat di sini untuk daftar lengkap)
- Mendukung MPI, OpenMP dan kode pengguna hibrida
- 2500 + tes dibundel dengan distribusi sumber
- dukungan pengguna gratis
- komunitas pengguna aktif
- Suprastruktur untuk komponen sistem kopling Earth:
- Komponen, Negara dan software Coupler yang membungkus kode pengguna dengan overhead minimal
- driver sederhana bahwa pengguna dapat memodifikasi
- eksekusi Sequential atau bersamaan komponen
- kemampuan executable tunggal
- kemampuan eksekusi beberapa Terbatas
- Infrastruktur untuk membangun komponen sistem Bumi:
- Manajer Waktu yang mencakup Gregorian, 360 hari, tidak ada lompatan, Julian, dan kalender lainnya, serta berbagai fungsi waktu
- struktur data untuk penyimpanan dan manipulasi Array, Fields, dan Kumpulan Bidang pada grid yang sama.
- komunikasi data paralel dan regridding software
- alat Pesan logging
- file manager Sumber Daya
Apa yang baru dalam rilis ini:
- Sebuah ekstensi toleransi kepada ESMF_GridComp dan ESMF_CplComp interface memiliki dilaksanakan.
- Banyak perangkat tambahan dan perbaikan bug.
Apa yang baru dalam versi 3.2.0r:
- Versi ini memodifikasi kode untuk mengaktifkan kompatibilitas dan menambahkan dukungan untuk PGI 11.x versi compiler di Linux / PC dan platform Cray XT.
Apa yang baru dalam versi 3.1.0rp2:
- Ditambahkan dukungan untuk dimensi direplikasi di lapangan. A & quot; 0 & quot; masuk dalam argumen gridToFieldMap di ESMF_FieldCreate () dan ESMF_FieldSetCommit () menunjukkan bahwa dimensi Grid bukan bagian dari Lapangan. Sebaliknya Lapangan direplikasi di semua des sepanjang dimensi Grid sesuai.
- sesak ESMF_FieldCreate () untuk menerima array pointer Fortran dan melestarikan sifat-sifatnya (seperti batas dan kemampuan untuk DEALLOCATE).
- sesak ESMF_FieldSetCommit () untuk menerima array pointer Fortran dan melestarikan sifat-sifatnya (seperti batas dan kemampuan untuk DEALLOCATE).
- Grid sekarang mendukung opsi ESMF_INDEX_USER untuk indexflag tersebut. Hal ini memungkinkan pengguna untuk secara eksplisit mengatur batas bawah dari ruang indeks lokal mereka. Hal ini diperlukan saat membuat lapangan dari array pointer Fortran dengan pengindeksan non-standar.
- sesak ESMF_ArrayCreate () untuk menerima array pointer Fortran dan melestarikan sifat-sifatnya (seperti batas dan kemampuan untuk DEALLOCATE).
- Dioptimalkan ESMF_ArraySMM () dan ESMF_ArrayBundleSMM () kinerja runtime, skalabilitas dan penggunaan memori.
- Ditambahkan dukungan untuk komunikasi dioptimalkan untuk Array dengan distribusi yang berbeda, dimensi dan ukuran di ArrayBundle yang sama.
- Ditambahkan dukungan untuk des dengan nol elemen di DistGrid, Array dan Field.
- argumen localDe Dibuat opsional di ESMF_ArrayGet () dan ESMF_FieldGet () metode di mana tidak dilarang oleh overloading pembatasan.
- Alarm diatur untuk berdering pada timestep 0, setelah ESMF_ClockCreate (), sekarang cincin benar.
- Alarm sekarang cincin benar untuk Jam di ESMF_MODE_REVERSE.
- Alarm sekarang cincin benar untuk Jam menggunakan timestep negatif.
- Ditambahkan default fitur ukuran pointer override untuk membangun sistem menggunakan variabel lingkungan baru ESMF_F90_PTR_BASE_SIZE dan ESMF_F90_PTR_PLUS_RANK.
Apa yang baru dalam versi 3.1.0rp1:.
- Ditambahkan Atribut kelas Grid
- Ditambahkan Atribut kelas Array.
- Ditambahkan minIndex dan maxIndex argumen untuk ESMF_GridGet (). Argumen ini berlaku untuk ubin pertama.
- Ditambahkan minIndexPDimPDe dan maxIndexPDimPDe argumen untuk ESMF_DistGridGet ().
- Ditambahkan ESMF_GridMatch () metode untuk membandingkan dua benda Grid.
- Sebuah bagian baru di Panduan Pengguna berjudul & quot; Menyiapkan ESMF untuk menjalankan Test Suite Aplikasi & quot; ditambahkan yang menguraikan bagaimana pengguna dapat menentukan skrip mpirun mereka sendiri. ESMF sekarang konsisten menggunakan pengaturan variabel lingkungan ESMF_MPIRUN untuk meluncurkan test suite dan contoh aplikasi dibundel.
- Berikut dikenal Bug telah diperbaiki.
Komentar tidak ditemukan