SoftwareX (Sep 2024)

PATSMA: Parameter Auto-tuning for Shared Memory Algorithms

  • Joao B. Fernandes,
  • Felipe H. Santos-da-Silva,
  • Tiago Barros,
  • Italo A.S. Assis,
  • Samuel Xavier-de-Souza

Journal volume & issue
Vol. 27
p. 101789

Abstract

Read online

Programs with high levels of complexity often face challenges in adjusting execution parameters, particularly when the ideal value for these parameters may change based on the execution context. These dynamic parameters significantly impact the program’s performance. For instance, ideal parallel loop scheduling may vary depending on factors like the execution environment, program input, or the choice of compiler. Given the expensive nature of testing each case individually, one viable solution is to automate parameter adjustments using optimization methods. This article introduces PATSMA, a parameter auto-tuning tool that leverages Coupled Simulated Annealing (CSA) and Nelder–Mead (NM) optimization methods to fine-tune existing parameters in an iterative application. We demonstrate how auto-tuning can contribute to the real-time optimization of parallel algorithms designed for shared memory systems. PATSMA is a C++ library readily available under the MIT license.

Keywords