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%.