High-performance computers can reach higher levels of computational power when combined with accelerators. Nevertheless, the more heterogeneity the system presents, the more complex becomes the programming task in terms of resource management and work distribution. We present SSMART, a task-based scheduler to dynamically distribute work among the processing units of a heterogeneous system. Assuming that different specialized versions of tasks (i.e. pieces of specific code targeted and optimized for a particular architecture) are given, SSMART is able to record statistics from previously executed tasks on each system device and dynamically adapt the workload distribution to achieve the optimal performance. SSMART has been implemented on top of OmpSs, a programming model based on compiler directives. The results obtained in a multi-GPU and a MIC+GPU systems prove that our proposal gives flexibility to applications and can potentially increase performance.
['Judit Planas', 'Rosa M. Badia', 'Eduard Ayguadé', 'Jesús Labarta']
SSMART: smart scheduling of multi-architecture tasks on heterogeneous systems