Computer simulations are an essential tool for preparing weather and climate forecasts. However, they also tend to involve a great deal of calculation, as they are tasked with representing our complex reality. The more precise the desired details are, the more computing power is needed. Together with my colleagues at the KlimaCampus I’m working to develop new methods to make these calculations more efficient – for example in order to determine the spread of what are referred to as aerosols.
These suspended particles are for instance released by volcanic eruptions, or find their way into our air as pollutants from industrial production and car exhaust. Since they promote cloud formation, influencing both our weather and climate, our goal is to determine where the winds transport these aerosols. To do so, we use a three-dimensional simulation grid that consists of individual cells as a model.
The smaller these cells are, the more precisely we can predict the concentration of aerosols at a specific place. So, if we want higher resolution for the model, it means looking at more and smaller cells: For example, if we cut the size of cube-shaped cells in half, the computer will need at least eight times as much calculation time, which also means more electricity and higher costs. Therefore it makes better sense to only refine the grid in places where we know there actually are aerosols. For instance, if there is a volcanic eruption, we can very accurately localize the source of the particles.
Skillful data sorting cuts simulation times
When it comes to the spread of aerosols, we first calculate the concentrations within the individual cells – and then the exchange of information with neighboring cells. Here my goal is to save time and money. The problem: A computer can only work with data in its cache memory, which is in its processor – in other words, in the same place it does its calculations. And this cache memory is relatively small. So when the computer has to process large amounts of data, it has to access the RAM or hard drive in order to load the data in the cache. This costs time, because it can’t do any calculations in the meantime.
That’s why we use a trick: Instead of individual pieces of information, the computer loads data blocks in the cache. Here our goal is to collect as many relevant pieces of information as possible in a single block. To do so, we do our best to sort the data, grouping cells together with their neighbors. As a result, the computer loads the presorted data in the cache – and doesn’t have to resort to accessing the RAM or hard drive nearly so often.
Generally speaking, you could think of the aerosol concentration as a mosaic of tiles and the computer as the person laying the tiles. When it lays smaller tiles, we can see the fine details; when it uses bigger tiles the image becomes more basic, but takes less time to finish. My method allows me to sort out the tiles for the computer ahead of time. Then it can finish the mosaic much faster, because it receives batches of tiles that all belong together. So we see that presorting the data can greatly accelerate simulations without changing the actual simulation method used.
Oliver Kunst is a member of the working group „Numerical Methods in Geosciences“ at the University of Hamburg’s Institute of Oceanography.