Finding new heuristics for automated task prioritizing in heterogeneous computing

In many sciences, processing costly computations has become frequent and the execution time of an application is often viewed as a bottleneck. High-Performance Computing is a growing area of interest whose role is to reduce the execution time of these applications by optimizing their granularity, data accesses, data transfers, etc. During the late 2010 decade, Graphics Processing Units have started to become a popular solution for speeding up programs. For some operations, using GPUs instead of CPUs drastically speeds up the computation time thanks to their massive parallelization potential. There are, however, downsides to using GPUs along with CPUs. Firstly, it adds costly data transfers to make data available to the GPUs. Secondly, scheduling decisions are more complex and may, therefore, be less efficient. In this study, we improve Heteroprio, a hybrid CPU/GPU scheduler that works with user-defined CPU and GPU priorities. Our improved version now affects priorities automatically, based on heuristics that have been validated on theoretical executions.