GPU programming

GPU is short for Graphical Processing Unit, or, just a graphics card inside your PC. High-end cards cost about a price of the PC, take twice the power and execute hundreds of commands in parallel.

Performance. Modern GPUs have about 20-50 times more mathematical computing power than modern CPUs. Memory throughput is about 3-20 times of the CPU. For some applications it means 100 times of win, for some only few times. Usual Fortran code for physics simulation, while scanning arrays, performs with 1-5GFlops at 10-50GFlops CPU, due to memory speed.

Porting code from CPU to GPU is usually a very complex task. As GPU wants to run things in parallel and do it in a quite peculiar way, the whole program is usually to be rewritten. In order to get the expected magnitude of speed increase, a careful planning and measurements should be undertaken.

Future will bring a rapid development of multi-core CPUs as a increase of GPU performance. There will remain tasks that are so SIMD( single instruction, multiple data) that running them on GPU has specific advantage in price as of hardware as of electricity.