Contention-Aware Scheduling of Parallel Code for Heterogeneous Systems
Source: University of Virginia
A typical consumer desktop computer has a multi-core CPU with at least two and possibly up to eight processing elements over two processors, and a multi-core GPU with up to 512 processing elements. Both the CPU and the GPU are capable of running parallel code, yet it is not obvious when to utilize one processor or the other because of workload considerations and, as importantly, contention on each device. This paper demonstrates a method for dynamically deciding whether to run a given parallel workload on the CPU or the GPU depending on the state of the system when the code is launched.