Analytical and numerical evaluation of co-scheduling strategies and their application

Research output: Contribution to journalArticlepeer-review

Abstract

Applications in high-performance computing (HPC) may not use all available computational resources, leaving some of them underutilized. By co-scheduling, i.e., running more than one application on the same computational node, it is possible to improve resource utilization and overall throughput. Some applications may have conflicting requirements on resources and co-scheduling may cause performance degradation, so it is important to take it into account in scheduling decisions. In this paper, we formalize the co-scheduling problem and propose multiple scheduling strategies to solve it: an optimal strategy, an online strategy and heuristic strategies. These strategies vary in terms of the optimality of the solution they produce and a priori information about the system they require. We show theoretically that the online strategy provides schedules with a competitive ratio that has a constant upper limit. This allows us to solve the co-scheduling problem using heuristic strategies that approximate this online strategy. Numerical simulations show how heuristic strategies compare to the optimal strategy for different input systems. We propose a method for measuring input parameters of the model in practice and evaluate this method on HPC benchmark applications. We show the high accuracy of the measurement method, which allows us to apply the proposed scheduling strategies in the scheduler implementation.

Original languageEnglish
Article number122
JournalComputers
Volume10
Issue number10
DOIs
StatePublished - Oct 2021

Scopus subject areas

  • Human-Computer Interaction
  • Computer Networks and Communications

Keywords

  • Co-scheduling
  • HPC
  • Scheduling theory
  • Stochastic optimization

Fingerprint

Dive into the research topics of 'Analytical and numerical evaluation of co-scheduling strategies and their application'. Together they form a unique fingerprint.

Cite this