Hybrid Programming with CPUs/GPUs/Accelerators

During the last 10 years, the use of CPUs in conjunction with GPUs has gone from being an interesting research idea (with institutions purchasing standalone systems with GPU cards to investigate their use) to recent HPC clusters having large numbers of GPUs. Thus, hybrid GPU/CPU possibilities are now widely available and frameworks/libraries for using them have rapidly evolved. Many CCPs and HECs are now wanting to exploit these next generation architectures and wish to appropriately port their simulation codes. Hence, we have produced a survey of hybrid programming frameworks for these next generation architectures which compares ease of use as well as performance, where performance was compared using a benchmark derived from a CCPi code.