Automatic generation of program affinity policies using machine learning

  • Authors:
  • Ryan W. Moore;Bruce R. Childers

  • Affiliations:
  • University of Pittsburgh, Pittsburgh;University of Pittsburgh, Pittsburgh

  • Venue:
  • CC'13 Proceedings of the 22nd international conference on Compiler Construction
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern scientific and server programs require multisocket, multicore machines to achieve good performance. Maximizing the performance of these programs requires careful consideration of program behavior and careful management of hardware resources. In particular, a program's affinity can have a critical performance effect. For such machines, there are many possible affinities for a multithreaded program. In this paper, we present AutoFinity, a solution to automatically generate program affinity policies that consider program behavior and the target machine. The policies are constructed with machine learning and used online to select an affinity. We implemented AutoFinity on a 4-processor, 48-core machine and evaluated it on 18 multithreaded programs with varying thread counts. Our results show that in 12 out of 15 cases where affinity impacts runtime, the policy generated by AutoFinity chose affinities that improved performance versus assignments that do not consider program and machine behavior.