Dynamic Placement of Progress Thread for Overlapping MPI Non-Blocking Collectives on Manycore Processor
Recouvrement des collectives mpi non-bloquantes sur processeur manycore
Abstract
To amortize the cost of MPI collective operations, non-blocking
collectives have been proposed so as to allow communications to be
overlapped with computation. Unfortunately, collective communications
are more CPU-hungry than point-to-point communications and running
them in a communication thread on a dedicated CPU core makes them
slow. On the other hand, running collective communications on the
application cores leads to no overlap.
To address these issues, we propose an algorithm for tree-based
collective operations that splits the tree between communication
cores and application cores. To get the best of both worlds, the
algorithm runs the short but heavy part of the tree on application
cores, and the long but narrow part of the tree on one or several
communication cores, so as to get a trade-off between overlap and
absolute performance. We provide a model to study and predict its
behavior and to tune its parameters.
We implemented it in the MPC framework, which is a thread-based MPI
implementation. We have run benchmarks on manycore processors such
as the KNL and Skylake and get good results for both performance and
overlap.
Les collectives MPI non-bloquantes ont été proposées pour recouvrir les communications par du calcul afin d’en amortir le coût. Cependant, ces opérations consomment plus de temps CPUque les opérations point-à-point. L’utilisation d’un seul CPU dédié aux threads de progression n’est donc pas efficace et rend les communications lentes. D’un autre côté, si les communications sont exécutées sur les coeurs applicatifs, aucun recouvrement n’est obtenu. Pour aborder ce problème, nous proposons un algorithme pour les opérations collectives en arbre qui scinde l’arbre des communications entre les coeurs applicatifs et les coeurs dédiés aux communications afin d’obtenir un compromis entre le taux de recouvrement et les performances globales.
Nous proposons un modèle afin d’étudier et prédire son comportement puis l’avons implémenté dans le framework MPC. Nous avons obtenu de bons résultats en testant notre approche sur des processeurs manycores tels que le KNL et le Skylake.
Origin | Files produced by the author(s) |
---|
Loading...