What is your role in ESiWACE?
I am leading Work Package 3 on HPC services, in which we help to prepare the weather and climate community for the new computing systems. As part of this work package, we create a number of services, in which we provide guidance, engineering, and advice to improve model efficiency and adapt weather and climate models to existing and upcoming computing infrastructure. All groups developing and maintaining weather and climate codes - not only the ESiWACE2 partners - can apply for these services.
The main reason that we need to do this is the fact that computer hardware, especially that of big supercomputers, has changed dramatically over the past twenty years. One of the biggest changes is the fact that nearly all new supercomputers are these days equipped with Graphics Processing Units or GPUs, the type of computer chip that originally was intended for playing video games.
These chips now appear in supercomputers because they are actually very well-suited for doing massive amounts of computations. However, the software, and in our case that means big weather and climate modeling codes, needs to be adapted to be capable of using and running efficiently on this new hardware.
What do you appreciate most about your work?
It is really rewarding to know that our work helps to advance and accelerate climate research.
Climate change is one of the biggest challenges for mankind in our age. The better we understand climate change, the better we can prepare for the consequences, and take action to try to limit its effects.
In addition, our work contributes to the efficiency of climate models that run on some of the world’s largest scientific supercomputers. These large supercomputers are costly and consume a lot of energy, so we have responsibility to make sure that the software that runs on these systems can do so efficiently.
What drives you and what do you want to achieve?
One of my own research interests is investigating how we can optimize the performance of software running on Graphics Processing Units (GPUs). It involves understanding what the software is trying to accomplish and then thinking about how you can make efficient use of the hardware and achieve the same results, but in fewer steps, with fewer computations, with fewer memory accesses.
Optimizing a code is almost like a thrill seeking experience. When you are working on a particular code you are basically rewriting it over and over again, changing different things, trying different optimization techniques, and then you see the code becoming faster and faster every iteration. It’s one of the most fun things to do. Sometimes, it’s even difficult to know when to stop, because there are so many different things you could try.
Ben van Werkhoven
Department of Natural Sciences & Engineering
Netherlands eScience Center (NLeSc)
Science Park 140 (Matrix I)
1098 XG Amsterdam, The Netherlands
e-mail: b.vanwerkhoven@esciencecenter.nl