Gracjan Adamus
Third-year Applied Computer Science student at AGH University of Kraków. Interested in GPUs, HPC and Open-source software. Currently working as a C++ Developer @ digatus.
digatus
C++ Developer
Session
In this talk, I will share some highlights from the development of the PyPartMC package (https://pypi.org/p/PyPartMC; https://pypi.org/project/PyPartMC) in which we have just celebrated our 100-th release!
PyPartMC constitutes Python bindings to the Fortran-implemented internals of the PartMC aerosol dynamics Monte-Carlo simulation package developed at the University of Illinois Urbana-Champaign.
Rather than providing "wrappers" to highest-level PartMC interface, PyPartMC leverages the object-oriented architecture of PartMC and offers bindings to numerous datatypes and routines, as well as examples of how to construct simulation logic with these components in Python.
Applications of PyPartMC concern air-pollution and aerosol-cloud interactions modelling, and range from process studies to HPC applications via coupling with Numerical Weather Prediction models.
The talk will be addressed primarily to Python package developers. I will share the lessons learned, some fun facts, and practical solutions which are applicable to any Fortran-to-Python bindings project.
We will go through the key design goals of the project: maintainability, exposing internals, CI and automation, complete test coverage and single-click operations on Google Colab and within Matlab.
I will cover the encountered technical challenges - both solved and remaining - welcoming new contributors to the project.