Symbiotic jobscheduling with priorities for a simultaneous multithreading processor

Allan Snavely, Dean M. Tullsen, Geoff Voelker

Abstract

Simultaneous Multithreading machines benefit from jobscheduling software that monitors how well coscheduled jobs share CPU re-sources, and coschedules jobs that interact well to make more ef-ficient use of those resources. As a result, informed coschedul-ing can yield significant performance gains over naive schedulers. However, prior work on coscheduling focused on equal-priority job mixes, which is an unrealistic assumption for modern operating systems.

This paper demonstrates that a scheduler for an SMT machine can both satisfy process priorities and symbiotically schedule low and high priority threads to increase system throughput. Naive priority schedulers dedicate the machine to high priority jobs to meet prior-ity goals, and as a result decrease opportunities for increased per-formance from multithreading and coscheduling. More informed schedulers, however, can dynamically monitor the progress and re-source utilization of jobs on the machine, and dynamically adjust the degree of multithreading to improve performance while still meeting priority goals.

Using detailed simulation of an SMT architecture, we introduce and evaluate a series of five software and hardware-assisted prior-ity schedulers. Overall, our results indicate that coscheduling pri-ority jobs can significantly increase system throughput by as much as 40%, and that (1) the benefit depends upon the relative priority of the coscheduled jobs, and (2) more sophisticated schedulers are more effective when the differences in priorities are greatest. We show that our priority schedulers can decrease average turnaround times for a random jobmix by as much as 33%.