Ben van Werkhoven


Scientist and Software Developer

Find Out More

About me


I am Ben van Werkhoven, a computer scientist and research software engineer. My main research interest is 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


GPU Computing is the practice of using Graphics Processing Units for computations other than graphics.

However, developing GPU applications requires computations to be parallelized using specialized programming languages, and achieving high performance requires that you understand the underlying hardware.

As such, I’ve been researching how we can make it easier for other people to use GPUs for their computations. Other research topics that interest me are auto-tuning, performance modeling, and source-to-source translation.

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.

Auto-tuning GPU code


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, I want it to be a comprehensive auto-tuning toolbox. To this end, 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!

Performance Modeling


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.

ESiWACE2


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.

NL-RSE


I am one of the founding members 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. In 2020, I’m involved in the organization of:
• the fifth conference on Research Software Engineering RSECon2020 (cancelled),
RSE-HPC-2020 Supercomputing workshop,
• 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.

CORTEX


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.

Personal


Outside of work, I like to brew my own beer, grow my own hops, play board games, travel, and do many more things. The pictures below give you a peek into my personal life.