The Basic Model Interface (BMI)
summary
A minimal, language-agnostic set of about ~30 functions exposes initialize run step get/set and finalize so models remain runnable without BMI yet become pluggable; mappings exist for Python Fortran C Julia JavaScript and Rust and examples use a 2D heat equation; adoption includes NOAA Next Gen Modeling Framework and is community governed by a council; current work adds extension hooks for parallelism and geospatial features with a version 3 target Sep 2027.
AI-written summary · about
chapters (15)
- 0:00CSDMS and model coupling
- 3:12What is BMI
- 4:56BMI design principles
- 7:25BMI docs and examples
- 9:56BMI functions
- 10:39BMI adoption
- 11:43BMI governance and future
- 12:30BMI extensions
- 13:36BMI summary and open source
- 14:00Q&A: cross-language coupling
- 16:04Q&A: BMI implementation
- 18:33Q&A: variable schemas and units
- 19:39Q&A: BMI vs other coupling
- 21:45Q&A: packaging and reproducibility
- 22:26Q&A: BMI user lessons
related talks
58mWhat is the basic interface? (part 1 of 2)
23mparsnip A tidy model interface
01h 01mC++20 Modules - Review of the Current State of C++ Modules 2024
58mWhy Modules?: It's not about build time
50mModel Mitosis: a dynamic pattern to deal with model tensions
24mFrom Code To Models-as-Data: GEMS, a High-Level Language for Energy System Modelling
22mA Formal Model for Portable, Heterogeneous Accelerator Programming
01h 01mProgramming Abstractions for Orchestration of HPC Scientific Computing
