Spatial models on GPUs

Spatial models are often very time demanding. They typically run on grids, and on every grid node the model equations are computed. If you do this in languages such as Matlab, R, or even C, you drink a lot of coffee.

For this reason, I have in the past years put extensive effort in adapting my models to run on Graphics Processing Units (GPUs). GPUs sit in many current-day computers and laptops, and are typically used to run computer games and graphics applications.

Graphics processors are much better in handing big spatial grids. They have many hundreds to thousands of computing units that are specialized in simple calculations. The normal computer’s chip, the Central Processing Unit (CPU), typically has two or four. For computations that are repeated on every node of a grid, GPUs are much better suited.

In the past decade, GPUs have been adapted to allow for simulations, using programming languages such as CUDA (www.nvidia.com/cuda) and OpenCL (https://en.wikipedia.org/wiki/OpenCL) and very recently is has become possible to so simulations within browsers using WebGL, a Javascript-based system that allows you to run GPU simulations in a browser, as part of a website (https://en.wikipedia.org/wiki/WebGL).

See here a description of my work in OpenCL and CUDA.

See here some of my models in WebCL. You can try them yourself!