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
Reports (Research Report) Year : 2018

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.
Fichier principal
Vignette du fichier
RR-9160.pdf (1.33 Mo) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

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

Identifiers

  • HAL Id : hal-01741787 , version 2

Cite

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, pp.1-12. ⟨hal-01741787v2⟩
240 View
428 Download

Share

More