Computer Scientist and Research Software EngineerFind Out More
I am Ben van Werkhoven, a computer scientist and research software engineer. My main research interests are in optimization, performance modeling, and using Graphics Processing Units (GPUs) for scientific computing. I use GPUs to accelerate computations in many different research projects that span a wide range of scientific disciplines.
One of the things I enjoy the most in my work is building tools that solve problems I have experienced firsthand, and use those tools to become more effective in my daily work.
You can find my publication list here.
GPU Computing is the practice of using Graphics Processing Units for computations other than graphics.
Developing GPU applications requires computations to be parallelized using specialized programming languages, and achieving high performance requires a deep understanding of the underlying hardware. As such, I’ve been researching how we can make it easier for researchers to effectively and efficiently use GPUs for their computations. Other research topics that interest me are green computing, optimization, auto-tuning, and performance modeling.
My PhD thesis (finished in October 2014) is titled “Scientific Supercomputing with Graphics Processing Units”.
More recently, in 2020, I’ve published a paper on the lessons learned in a decade of research software engineering GPU applications.
In 2016, I’ve created Kernel Tuner to make it as simple as possible to auto-tune and test CUDA and OpenCL kernels using simple Python scripts.
While Kernel Tuner is designed to be easy to use, over the years it has grown into a comprehensive auto-tuning toolbox, with several tools being built on top. Kernel Tuner supports many advanced use cases, such as tuning parameters in both host and device code, a large selection of optimization algorithms, and using code generators. Kernel Tuner is open source and welcomes contributions, check it out on GitHub!
Kernel Tuner has been used to accelerate many scientific applications and has become an important tool for research in GPU auto-tuning. For an overview of use cases and publications, please see the Research Software Directory.
The National Science Agenda (NWO NWA) has awarded a 5 million euro grant to CORTEX – the Center for Optimal, Real-Time Machine Studies of the Explosive Universe. The CORTEX consortium of 12 partners from academia, industry and society will make self-learning machines faster, to figure out how massive cosmic explosions work, and to innovate wider applications.
I’m leading one of the work packages within CORTEX, where we investigate how to create software with the help of machine learning that can make optimal use of the computing power of modern computers. Later in the project we will apply this technology to implement the software pipelines for observing explosive events in the universe.
As part of CORTEX, we have recently published a paper on using model-steered auto-tuning to optimize the energy efficiency of several Radio Astronomy applications, click here for the paper.
Analytical performance models aim to capture the performance of a system in a set of simple rules or formulas. These models are typically easy to use and can provide a lot of insight into the performance of applications.
I’ve created an analytical performance model that allows developers to estimate CPU-GPU data transfer times and predict the best performing method for overlapping those transfers with GPU Computations.
You can read more about it here.
The EU H2020 funded Centre of Excellence in Simulation of Weather and Climate in Europe (ESiWACE) enables global storm- and eddy resolving weather and climate simulations on the upcoming (pre-)Exascale supercomputers.
I am leading the work package on HPC services, where we create small collaborative projects that provide guidance, engineering, and advice to developers of weather and climate models. The aim is to improve model efficiency and to port models to new architectures such as GPUs. For more information, checkout the ESiWACE website.
As part of ESiWACE2, we have used Kernel Tuner to optimize and auto-tune several weather and climate simulating codes, including RTE-RRTMGP and MicroHH.
I a co-founder of the Netherlands Research Software Engineer community (NL-RSE). Since April 2017, the community has grown rapidly to 200+ members from 35+ institutes within the Netherlands.
I’m also an active member of the international RSE movement by participating
in steering or program committees of various conferences and events. I’m involved in the organization of:
• the International RSE Council,
• Research Software Engineers in HPC workshop series (RSE-HPC) at Supercomputing,
• International Series of Online Research Software Events (SORSE),
• and the 2nd Intl. RSE Leaders Workshop.
Some of my blog posts related to the RSE movement are available on nl-rse.org.