General purpose graphics processing units (GPGPUs) can be used to accelerate specific types of computational tasks. The GPU hardware supports massive parallelism that can be used to significantly increase the performance of applications, while at the same time reducing their energy requirements. This parallelism does come at a price however, as application codes often need to be restructured and ported to GPU-specific programming languages such as CUDA or OpenCL. In addition, many applications codes need to be extensively optimized to take the GPU hardware architecture into account.
We have the expertise on which types of applications are suitable for the use of GPUs, how to port them to the GPU-specific programming languages, and how to optimize these codes to get the most performance out of the hardware.