STATIC LOAD BALANCING ON HETEROGENEOUS SYSTEMS CONTAINING CPU AND GPU - Szénási, Sándor (International Multidisciplinary Scientific GeoConference SGEM, 2018)
Scientific codes are usually highly parallelised and executed on heterogeneous architectures. Nowadays, it is common to use graphics accelerators (GPUs) to speed up data-parallel algorithms, and in the meantime, the already existing CPUs can help in this work. Distributing the jobs between systems is always a difficult problem, especially when the processing units have different runtime environments and hardware architectures. There are several attempts for static and dynamic load balancing, but most of these are not applicable to a GPU based system because of its limitations (memory transfer time, command queue, etc.). This paper presents a static load balancing method especially for hybrid CPU and GPU environments. Based on preliminary benchmarks (runtime measurements for both the CPU and the GPU side), it can propose an efficient job distribution strategy. It takes into account the specialities of both hardware architectures, the linearity in the CPU runtime and the batch execution fashion experienced in the GPU side.