ARTful: A model for user-defined schedulers targeting multiple high-performance computing runtime systems
Résumé
Application performance, developer productivity, and portability to multiple computational environments are some of the desired traits in High Performance Computing (HPC) applications. The evolution of programming models and runtime systems are crucial aspects on enabling applications to run faster on new architectures without requiring large reimplementation efforts. Runtime systems are central software entities in this software stack and have the role of scheduling and distributing the application workload among the processing units. However, most runtime library implementations offer little support for user-defined scheduling and provide only a limited set of scheduling policies. Extensions to provide better scheduling options usually require modifications to the runtime library and are hard to maintain across the rapidly evolving HPC domain. In this paper, we propose a set of ARTful specifications for abstracting system-specific scheduling functionalities and achieve global scheduler implementations that can be tested in isolation from the runtime and reused in multiple system libraries. We also showcase an implementation of our ARTful specifications as MOGSLib, a metaprogramming-oriented library that integrates generic global schedulers that can be specialized to function both as Charm++ load balancers and OpenMP loop schedulers. We analyze the overhead of schedulers implemented in MOGSLib in comparison to system native solutions and discuss the qualitative benefits of developing system-independent global schedulers. We show that our implementations can sometimes perform scheduling decisions even faster than their original implementations with negligible overhead in the execution times of synthetic applications and molecular dynamics kernels.
Origine | Fichiers produits par l'(les) auteur(s) |
---|