About me

I am a computational Scientist in the research department at ECMWF (European Centre for Medium-Range Weather Forecasts) where I work on the GPU adaptation and optimization of our numerical weather prediction system, the IFS, as part of Destination Earth. Currently, I am working on an optimized GPU version ECMWF's radiation scheme. I have also contributed to the development of our GPU-aware data structures library, FIELD API, and our Fortran-GPU transpiler, Loki.
Prior to joining ECMWF I studied Engineering Physics (Teknisk Fysik) with a M.Sc. degree in Computer Science, specializing in scientific computing and Monte Carlo methods on GPUs. I also studied pure mathematics at KTH and Stockholm University, specializing in analysis, probability theory, and PDEs. Before starting my master's studies I worked as a research engineer for 2 years at a startup developing indoor positioning systems for mobile devices. Working mainly on state estimation and bayesian filtering and signal processing using methods from machine learning.
When I'm not doing math or programming I enjoy being outdoors, especially in the mountains climbing and skiing. I have played the piano since I was five and I love everything composed by Bach and Beethoven. I've also dabbled in compiler theory and implementation. Have a look at some of my projects and texts below if you want to get a sense of what I like. Maybe you can find something interesting related to math, scientific computing, C++, or compilers, but this site is very much a work in progress!
Math
Large Deviations and Weak Convergence of Measures, with applications to Monte Carlo Estimators (M.Sc. thesis) - slides
- Studies weak convergence and the \(\tau\)-topology on the space of finite signed measures, and large deviations of sums of i.i.d. random variables. Proves Sanov's and Cramér's theorems in their most general forms.
- Awarded Mittag-Leffler Prize for mathematical thesis work of significant scientific value.
- Awarded SMC Prize for excellent master thesis.
Regularity of semilinear elliptic partial differential equations with critical Sobolev exponents (B.Sc. thesis)
Scientific Computing & Code Projects
Gamma Random Variable generation on GPUs using CUDA (M.Sc. thesis slides)
-
Explains the theory of random number generation on GPUs and implements several algorithms for gamma random number generation in CUDA as inline kernels templated on PRNG and float type.
-
Example notebook on Google Colab showing how to compile the code and benchmark generators using the included benchmark class.
cLoxpp
A Compiler and Virtual Machine, for the lox programming language
Based on the later chapters of the book Crafting Interpreters by Robert
Nystrom. However written entirely in modern C++ instead of C.
Also adds functionality not covered by Nystrom, including:
-
Extended bytecode, which yields increased performance and adds support for compiling more constants.
-
Custom Memory Manager with custom allocator support (I have played around with object pools for common object sizes).
Primary Interests
Mathematics
Probability Theory, especially Large Deviations and
its applications to Stochastic Simulations and rare events. PDEs, existence
and regularity of weak solutions. Weak topologies and convergence in the space of
finite signed measures and its subspaces (e.g. probability measures).
Monte Carlo Methods & Random Number Generation
Esepcially Sequential Monte Carlo and filtering applications.
Interested in RNGs especially for multithreaded and gpu settings,
both from reproducibility and performance perspective.
Scientific Computing & Parallell Programming
Optimization of scientific software and parallell algorithms. Especially GPU programming
and optimization.