Dynamic Placement of Progress Thread for Overlapping MPI Non-Blocking Collectives on Manycore Processor - Inria - Institut national de recherche en sciences et technologies du numérique
Rapport (Rapport De Recherche) Année : 2018

Dynamic Placement of Progress Thread for Overlapping MPI Non-Blocking Collectives on Manycore Processor

Recouvrement des collectives mpi non-bloquantes sur processeur manycore

Résumé

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 CPU que 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.
Fichier principal
Vignette du fichier
RR-9160.pdf (1.33 Mo) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01741787 , version 1 (23-03-2018)
hal-01741787 , version 2 (26-03-2018)

Identifiants

  • HAL Id : hal-01741787 , version 1

Citer

Alexandre Denis, Julien Jaeger, Emmanuel Jeannot, Marc Pérache, Hugo Taboada. Dynamic Placement of Progress Thread for Overlapping MPI Non-Blocking Collectives on Manycore Processor. [Research Report] RR-9160, Inria Bordeaux Sud-Ouest. 2018. ⟨hal-01741787v1⟩
244 Consultations
436 Téléchargements

Partager

More