On the design of Monte-Carlo particle coagulation solver interface: a CPU/GPU Super-Droplet Method case study with PySDM
Piotr Bartman, Sylwester Arabas

TL;DR
This paper presents the design and implementation of CPU and GPU backends for the Super-Droplet Method in PySDM, enabling efficient particle coagulation simulations on different hardware with a focus on parallelism.
Contribution
It introduces two parallel computing backends for SDM in PySDM, one for CPU and one for GPU, with a unified API and detailed discussion on implementation and workflow.
Findings
CPU backend uses Numba for multi-threaded computations
GPU backend leverages ThrustRTC and CURandRTC without Numpy
Example simulations validate the API and implementation efficiency
Abstract
Super-Droplet Method (SDM) is a probabilistic Monte-Carlo-type model of particle coagulation process, an alternative to the mean-field formulation of Smoluchowski. SDM as an algorithm has linear computational complexity with respect to the state vector length, the state vector length is constant throughout simulation, and most of the algorithm steps are readily parallelizable. This paper discusses the design and implementation of two number-crunching backends for SDM implemented in PySDM, a new free and open-source Python package for simulating the dynamics of atmospheric aerosol, cloud and rain particles. The two backends share their application programming interface (API) but leverage distinct parallelism paradigms, target different hardware, and are built on top of different lower-level routine sets. First offers multi-threaded CPU computations and is based on Numba (using Numpy…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
