2025-08-21 –, Room 1.38 (Ground Floor)
Numba-MPI is a pure Python package providing wrappers for C MPI (Message Parsing Interface) API that can be used from Numba JIT (Just In Time)-compiled code. This allows large computational tasks to benefit from multi-threading, JIT-compilation and workload scaling on large computer clusters. Futhermore, numba-MPI implements both synchronous and asynchronous transfer functions from C MPI API. By embedding MPI communication in JIT-compiled code blocks, many algorithms are able to gain a susbtantial speedup.
PyMPDATA-MPI is a package providing multi-threading with MPI-based domain decomposition for PyMPDATA, a package implementing Multidimensional Positive Definite Advection Transport Algorithm (MPDATA) for solving advection-diffusion PDEs. Thanks to those features, PyMPDATA-MPI allows for flexibility in parallelization strategies. This gives the ability to specify the dimensions over which multi-threading and multi-processing are employed and to keep the performance benefits of JIT-compiled code. Both of those packages are actively developed on AGH University of Krakow.
Message Parsing Interface (MPI) is a communication standard allowing for universal, portable high performance computing in distributed systems. Written for C, C++ and Fortran users it has since been incorporated into many pararell programming libraries, including implementations in Python.
Numba-MPI is a pure Python package that allows to bring low-level high performance computing on processor clusters to high-level Python simulations by the combined use of Numba JIT compilation and multi-threading.
PyMPDATA-MPI is an extension to PyMPDATA, that allows for high performance computation using the Multidimensional Positive Defined Advection Transport Algorithm (MPDATA) for solving advection-diffusion PDEs. Thanks to being based on Numba-MPI, this package allows the user to precisely control domain decomposition in calculations and gain the advantage of hybrid shared- and distributed-memory parallelism using multi-threading and MPI.
In this talk I will explain the basic concepts behind JIT compilation and distributed-memory calculations. Then I will outline the features and architecture of aforementioned packages, followed by usage examples of Numba-MPI coupled with PyMPDATA.
none
Expected audience expertise: Python:some
Supporting material: Supporting material Project homepage or Git: Project homepage or Git Your relationship with the presented work/project:Active contributor, Maintainer of the presented library/project
I am an undergraduate student at AGH University of Krakow on the Faculty of Physics and Applied Computer Science working on developing open-source MPI applications in physical simulations along with open-atmos contributors and developers.