Operating system multilevel load balancing

  • Authors:
  • M. Corrêa;A. Zorzo;R. Scheer

  • Affiliations:
  • Faculty of Informatics - PUCRS, Porto Alegre, Brazil;Faculty of Informatics - PUCRS, Porto Alegre, Brazil;HP Brazil R&D, Porto Alegre, Brazil

  • Venue:
  • Proceedings of the 2006 ACM symposium on Applied computing
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes an algorithm that allows Linux to perform multilevel load balancing in NUMA computers. The Linux scheduler implements a load balancing algorithm that uses structures called sched domains to build a hierarchy that represents the machine's topology. Although sched domains implementation allows Linux to build a multilevel hierarchy to represent multilevel machines, the generic code of the current kernel version builds no more than two levels in the sched domains hierarchy. Thus, for NUMA systems with three or more memory access levels, the constructed hierarchy does not represent correctly the machine's topology. When Linux load balancing algorithm uses an incorrect sched domains hierarchy, process execution time can increase, because processes can be moved to nodes that are distant from their memory areas. In order to solve this problem, we have implemented an algorithm to build multilevel sched domains hierarchies for NUMA computers. Our proposed algorithm uses ACPI SLIT table data to recognize how many memory access levels a machine contains. Then, it builds an n-level sched domains hierarchy, where n is the number of memory access levels. Through benchmarking and simulation results we demonstrate that the Linux load balancing performance when the sched domains hierarchy is built using our proposed algorithm is better than using the current Linux algorithm.