André Rigland Brodtkorb

Short bio

I work as an associate professor (nor: førsteamanuensis) at Oslo Metropolitan University, and head of the Mathematical Modeling academic group. My research centers on scientific computing and includes high-performance computing, applied mathematics, numerical simulation, accelerated scientific computing, machine learning, and real-time scientific visualization.

I enjoy supervising master thesis, so if you are interested, please get in touch. I have a webpage with some examples of theses that I can supervise. Common to them all is that they have a combination of computer science, mathematics, and visualization. You do not need to be an expert in all of these fields, as the thesis topic will be tailored to your interests and experience and the aim of your thesis work is also to learn something new.


Cell: (+47) 45 61 90 70
Homing pidgeon available upon request.



Recent Publications

(29) A. R. Brodtkorb, H. H. Holm. Coastal Ocean Forecasting on the GPU using a Two-Dimensional Finite-Volume Scheme, Tellus A: Dynamic Meteorology & Oceanography, arXiv preprint, 2021.

Abstract: Flexible simulations of the ocean is a challenging task that requires accurate numerical schemes that capture the relevantphysical properties and run efficiently without the need for large super computers. In this work, we take a modernhigh-resolution finite-volume scheme for solving the rotational shallow-water equations, and extend it with featuresrequired to run real-world ocean simulations efficiently on the GPU. The chosen scheme, first proposed by Chertocket al. (Chertock et al., 2017), is well-balanced with respect to the so-called geostrophic balance, and our contributionsinclude an efficient reformulation that makes it well-suited for massively parallel implementations, varying north vectorrequired for large scale domains, dynamic dry states combined with a static land mask, bottom shear stress, and windforcing. Further, we build a simulation framework that use real-world data (land mask, bathymetry, wind stress, andinitial and external boundary conditions) directly from three-dimensional operational ocean current forecasts that aremade publicly by the Norwegian Meteorological Institute. We show numerical experiments using three different real-world domains, and show that our simulation framework provides tidal predictions almost as well as the operationalmodel in the available time range. We also demonstrate numerical convergence using a non-trivial case and show weakappropriate weak scaling of the computational performance of our GPU implementation.

(28) H. Nilsen, A. Moncorge, K. Bao, O. Møyner, K.-A. Lie and A. R. Brodtkorb Comparison Between Algebraic Multigrid and Multilevel Multiscale Methods for Reservoir Simulation, Proceedings ECMOR XVII, Sep 2020, Volume 2020, p.1 - 17.

Abstract: Multiscale methods for solving strongly heterogenous systems in reservoirs have a long history from the early ideas used on incompressible flow to the newly released version in commercial simulation. Much effort has been put into making the MsFV method work for fully unstructured multiphase problems. The MsRSB version is a newly developed version, which tackles most of the "real" world problems. It is to our knowledge, the only multiscale method that has been released in a commercial simulator. You can alternatively see the method as a variant of smoothed aggregation or as an iterative approach to AMG with energy minimizing basis functions. This will be discussed in detail.

So far, most work on comparing MsRSB with AMG methods has been on qualitative performance measures like iteration number rather than on pure runtime on fair code implementation. We discuss the theoretical performance and show the practical performance for our implementation. Here, we compare performance of pure AMG, standard two-level MsRSB with pure AMG as coarse solver, as well as a new truly multilevel MsRSB scheme. Our implementation uses the DUNE-ISTL framework. To limit the scope of the discussion we restrict our assessment to AMG with aggregation and smoothed aggregation and the MsRSB method. These three methods are closely related and are primarily distinguished in a preconditioner setting by the coarsening factors used, and the degree of smoothing applied to the basis. We also compare with other state-of-the-art AMG implementations, but do not investigate combinations of them with the MSRB method. For the MsRSB method, we also discuss practical considerations in different parallelization regimes including domain decomposition using MPI, shared memory using OpenMP, and GPU acceleration with CUDA.

All comparisons will focus on the setting in which many similar systems should be solved, e.g. during a large-scale, multiphase flow simulation. That is, our emphasis is on the performance of updating a preconditioner and on the apply time for the preconditioner relative to the convergence rate. Performance of the solvers will be tested for pure parabolic/elliptic problems that either arise as part of a sequential splitting procedure or as a pseudo-elliptic preconditioner/solver as a part of a CPR preconditioner for a multiphase system, for which block ILU0 is used as the outer smoother.

(27) A. R. Brodtkorb, A. Benedictow, H. Klein, A. Kylling, A. Nyiri, A. Valdebenito, E. Sollum Estimating volcanic ash emissions using satellite images with altitude observations, 2020.
arXiv preprint | Source code (Zenodo) | Satellite data (Zenodo) | Forward simulations (Zenodo) | Presentation

Abstract: This paper describes the inversion procedure being used operationally at the Norwegian Meteorological Institute for estimating ash emission rates from satellite images. The overall procedure consists of five stages: (1) run emission scenario simulations; (2) generate a priori emission estimates; (3) match observations with emission simulations; (4) build system of linear equations; and (5) solve overdetermined system. We go through the mathematical foundations for the inversion procedure, performance for synthetic cases, and performance for real-world cases. The novelties of this paper includes pruning of the linear system of equations used in the inversion and inclusion of observations of ash cloud height from the SLSTR instrument. The source code used in this work is freely available under an open source license, and is possible to use for other similar applications.

(26) A. R. Brodtkorb. Solving Hyperbolic Conservation Laws on GPUs, in preparation, 2020.

Abstract: GPUs have gone from something esoteric to mainstream within scientific computing over the last decade. The aim of this paper is to demonstrate that development of solvers for hyperbolic conservation laws on GPUs can be simple, easy, and efficient using modern development techniques. This paper starts with a short introduction to hyperbolic conservation laws, and techniques for computing solutions to such equations. Then, we show how these techniques can implemented on a GPU with relative ease, yet keeping the performance high. The source code is released under an open source license, with the hope that it can serve as a tutorial or building block for other researchers to build more advanced high-performance solvers.

(25) H. H. Holm, M. L. Sætra, A. R. Brodtkorb. Data Assimilation for Ocean Drift Trajectories Using Massive Ensembles and GPUs, Finite Volumes for Complex Applications IX, 2020. [Draft (PDF)].

Abstract: In this work, we perform fully non-linear data assimilation of ocean drift trajectories using a cluster of GPUs. We use an ensemble of over 1000 members and the sequential importance resampling algorithm to assimilate observations of drift trajectories into the physical variables of the underlying shallow water simulation model. Our results show an improved drift trajectory forecast using data assimilation for a complex and realistic simulation scenario, and the implementation exhibits good weak and strong scaling.

(24) H. H. Holm, A. R. Brodtkorb, M. L. Sætra, GPU Computing with Python: Performance, EnergyEfficiency and Usability, MDPI Computation 8(1), 4, Special issue on Energy-Efficient Computing on Parallel Architectures, 2020. [DOI]

Abstract: In this work, we examine the performance, energy efficiency and usability when using Python for developing high performance computing codes running on the graphics processing unit (GPU). We investigate the portability of performance and energy efficiency between CUDA and OpenCL; between GPU generations; and between low-end, mid-range and high-end GPUs. Our findings show that the impact of using Python is negligible for our applications, and furthermore, CUDA and OpenCL applications tuned to an equivalent level can in many cases obtain the same computational performance. Our experiments show that performance in general varies more between different GPUs than between using CUDA and OpenCL. We also show that tuning for performance is a good way of tuning for energy efficiency, but that specific tuning is needed to obtain optimal energy efficiency.

(23) H.H. Holm, A.R. Brodtkorb, and M.L. Sætra. Performance and energy efficiency of CUDA and OpenCL for GPU computing using Python. In Proceedings of the ParCo 2019 conference, 2019. arXiv preprint

Abstract: We have developed a shallow water simulator in Python that utilizes the GPU for computational performance. To access the GPU, there are today several different programming languages and models, and two popular choices are Nvidia CUDA and OpenCL. CUDA is a propritary language that can run only on NVIDIA GPUs, whilst OpenCL is an open standard available for GPUs from several vendors, in addition to other architectures such as Intel CPUs and FPGAs.

In this paper, we report our experiences using both pyCUDA and pyOpenCL for computational science. There are benefits to both approaches, and we summarize and compare some of these in a table. We compare achieved performance of equivalent code, availability and maturity of tools and the development ecosystems, and other relevant metrics.

Full list

Recent Talks

(57) 2019-02-04, Graphics Cards and Conservation Laws, PDE Seminar series, University of Oslo.

(56) 2019-01-24, Introduction to Monte Carlo Simulation using Python, 19th Geilo Winter School: Learning from Data.

(55) 2018-10-01 -- 2018-10-05, Two and a half day course on hyperbolic conservation laws using GPUs, Politecnico di Milano, Italy. Lecture notes (zip) Github

(54) 2018-10-01 -- 2018-10-05, Simplified Ocean Models on the GPU, Seminar, Politecnico di Milano, Italy.

(53) 2018-09-17 -- 2018-09-05, Simplified Ocean Models on the GPU, Norsk Informatikkonferanse, Svalbard.

(52) 2018-05-22 -- 2018-05-23 Master course in high performance computing, Programación Gráfica de Altas Prestaciones, University of Granada, Spain. Lecture 1 (PDF) Lecture 2 (PDF) Lecture 3 (PDF)

(51) 2018-03-01, GPUs and Conservation Laws, Mathematical Modeling Seminar, Oslo Metropolitan University, Oslo, Norway Talk (PDF)

Full list

Log In Page last modified on February 03, 2021, at 12:37 PM