Numerical Codes on Multi-GPU Architectures
Many real world applications involving numerical algorithms require high performance computing (HPC), either because of time constraints like for real-time simulations or because a large amount of data has to be processed.
GPUs offer high computational performance at relatively low cost and are therefore an interesting architecture especially for data parallel applications. Recently, more and more GPU HPC clusters arise and thus there is a need for adapting numerical codes to Multi-GPU environments. In this talk we consider two common numerical algorithms on GPU clusters, namely multigrid and the Lattice Boltzmann Method (LBM). Multigrid is among the most efficient numerical solvers for a variety of large, sparse (linear) systems arising e.g. from discretized PDEs. LBM is used in computational fluid dynamics (CFD) and follows in contrast to the Navier-Stokes equations a microscopic CFD approach based on cellular automata and kinetic theory.
We introduce GPU programming paradigms, compare CUDA and OpenCL, and show performance results for exemplary applications in CFD and imaging on different GPU platforms and clusters.