Programming and Scheduling Model for Supporting Heterogeneous Accelerators in Linux
Paderborn Center for Parallel Computing, University of Paderborn, Paderborn, Germany
Workshop on Computer Architecture and Operating System Co-design (CAOS), 2012
@article{beisel2012programming,
title={Programming and Scheduling Model for Supporting Heterogeneous Accelerators in Linux},
author={Beisel, Tobias and Wiersema, Tobias and Plessl, Christian and Brinkmann, Andre},
booktitle={Proc. Workshop on Computer Architecture and Operating System Co-design (CAOS)},
year={2012}
}
Computer systems increasingly integrate heterogeneous computing elements like graphic processing units and specialized co-processors. The systematic programming and exploitation of such heterogeneous systems is still a subject of research. While many efforts address the programming of accelerators, scheduling heterogeneous systems, i. e., mapping parts of an application to accelerators at runtime, is still performed from within the applications. Moving the scheduling decisions into an external component would not only simplify application development, but also allow the operating system to make scheduling decisions using a global view. In this paper we present a generic scheduling model that can be used for systems using heterogeneous accelerators. To accomplish this generic scheduling, we introduce a scheduling component that provides queues for available accelerators, offers the possibility to take application specific meta information into account and allows for using different scheduling policies to map tasks to the queues of both accelerators and CPUs. Our additional programming model allows the user to integrate checkpoints into applications, which permits the preemption and especially also subsequent migration of applications between accelerators. We have implemented this model as an extension to the current Linux scheduler and show that cooperative multitasking with time-sharing enabled by our approach is beneficial for heterogeneous systems.
May 19, 2012 by hgpu