Fully-abstracted affinity optimization for task-based models - INRIA - Institut National de Recherche en Informatique et en Automatique Accéder directement au contenu
Rapport (Rapport De Recherche) Année : 2016

Fully-abstracted affinity optimization for task-based models

Abstraction complète de l'optimization de l'affinité pour des modèles à base de tâches

Résumé

Task-based models and runtimes are quite popular in the HPC community. They help to implement applications with a high level of abstraction while still applying different types of optimizations. An important optimization target is hardware affinity, which concerns to match application behavior (thread, communication, data) to the architecture topology (cores, caches, memory). In fact, realizing a well adapted placement of threads is a key to achieve performance and scalability, especially on NUMA-SMP machines. However, this type of optimization is difficult: architectures become increasingly complex and application behavior changes with implementations and input parameters, e.g problem size and number of thread. Thus, by themselves task based runtimes often deal badly with this optimization and leave a lot of fine-tuning to the user. In this work, we propose a fully automatic, abstracted and portable affinity module. It produces and implements an optimized affinity strategy that combines knowledge about application characteristics and the architecture’s topology. Implemented in the backend of our task-based runtime ORWL, our approach was used to enhance the performance and the scalability of several unmodified ORWL-coded applications: matrix multiplication, a 2D stencil (Livermore Kernel 23), and a video tracking real world application. On two SGI SMP machines with quite different hardware characteristics, our tests show spectacular performance improvements for this unmodified application code due to a dramatic decrease of cache misses. A comparison to reference implementations using OpenMP confirms this performance gain of almost one order of magnitude.
Modeles et environnements à base de tâches sont très populaires dans la communauté du HPC. Ils aident à implanter des applications à un niveau d'abstraction élevé en permettant néanmoins différents types d'optimisation. Une cible d'optimisation importante est l'affinité, qui consiste à lier le comportement de l'application (processus légers, communication, données) à la topologie de l'architecture (coeurs, caches, mémoire). Réaliser un placement bien adapté des processus est un levier effectif pour atteindre performance et passage à l'échelle, en particulier sur des machines NUMA-SMP. Néanmoins, ce type d'optimisation est difficile : les architectures deviennent de plus en plus complexes et le comportement des applications change selon les implantations et les paramètres d'entrées, p. ex. la taille du problème ou le nombre de processus. Souvent les environnements d'exécution gèrent mal ce type d'optimisation par eux-mêmes et laissent beaucoup de réglages minutieux à l'utilisateur. Avec ce travail nous proposons un module pour controler l'affinité qui est complètement automatique, abstrait et portable. Il produit et implante une stratégie d'affinité optimisée qui combine les connaissances sur les caractéristiques de l'application et sur la topologie de l'architecture. Implanté comme module interne de notre environnement d'exécution ORWL, notre approche a été utilisée pour améliorer la performance et le passage à l'échelle de plusieurs applications ORWL non-modifiées : multiplication de matrices, un stencil 2D (Livermore Kernel 23), et une application réelle de poursuite vidéo. Sur deux machines SMP de SGI avec des caractéristiques matérielles relativement différents nos tests montrent des améliorations spectaculaires pour ces applications non-modiffiées, dû à une baisse très notable des défauts de caches. Une comparaison avec des implantations de référence utilisant OpenMP confirme ce gain de performance de presque un ordre de grandeur
Fichier principal
Vignette du fichier
RR-8993.pdf (1.65 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01409101 , version 1 (05-12-2016)

Identifiants

  • HAL Id : hal-01409101 , version 1

Citer

Jens Gustedt, Emmanuel Jeannot, Farouk Mansouri. Fully-abstracted affinity optimization for task-based models. [Research Report] RR-8993, INRIA Nancy. 2016. ⟨hal-01409101⟩
671 Consultations
170 Téléchargements

Partager

Gmail Facebook X LinkedIn More