Coordination et ordonnancement de tâche à grain fin entre environnement d'exécution HPC

par Cassandra Rocha barbosa

Projet de thèse en Info - Informatique

Sous la direction de Marc Perache et de Michaël Krajecki.

Thèses en préparation à Reims , dans le cadre de Ecole doctorale Sciences du Numérique et de lu2019Ingénieur , en partenariat avec Laboratoire d'Informatique en Calcul Intensif et Image pour la Simulation (laboratoire) depuis le 06-05-2020 .


  • Résumé

    L'objectif de cette thèse est d'étudier l'ordonnancement de tâches de gestion et de progression des entrées/sorties en espace utilisateur par coopération entre les environnements d'exécution au sein d'un nœud de calcul. Le résultat de cette étude portera sur les algorithmes d'ordonnancement de ces tâches et des connaissances requise sur l'état du système pour les mettre en œuvre. L'application de ces algorithmes sera également évaluée expérimentalement afin de montrer les améliorations de performance d'applications scientifiques écrites dans les modèles MPI+X. L'utilisation d'un fil d'exécution dédié à la progression des entrées sorties au sein d'une application MPI a déjà été étudiée. Il a été ainsi montré que la consommation de ressources de calcul du nœud par ce fil d'exécution impacte les performances de l'application. De plus, c'est l'ordonnanceur du système d'exploitation qui gère ce fil d'exécution, sans connaissance préalable des applications, ce qui ne permet pas un ordonnancement prenant en compte les besoins de l'application. Cette thèse portera sur un ordonnanceur en espace utilisateur, nécessitant une intégration dans les environnements d'exécution des outils et librairies utilisées par les applications scientifiques. Il s'agit de mettre en place un service d'ordonnancement sur chaque nœud de calcul grâce auquel chaque environnement d'exécution pourra externaliser des tâches de progression d'entrées/sorties et également demander du travail dynamiquement lorsque ses ressources sont libres. Ce service pourra s'intégrer à l'environnement PMIx déjà existant servant au déploiement des processus et à leurs informations. Il sera nécessaire de modifier les environnements d'exécution afin de rendre possible l'interaction avec ce nouveau service. Les deux environnements principaux employés de nos jours dans le modèle MPI+X sont l'environnement d'exécution de MPI et celui d'OpenMP. Par conséquent les modifications envisagées seront apportées à ces deux environnements d'exécution. D'autres environnement d'exécution de type multi-threadé ou multi-tâche pourront également être modifiés. Il s'agira aussi d'établir de nouveaux algorithmes d'ordonnancement au sein de ce service, et des informations nécessaires sur l'état des environnements d'exécution pour les mettre en place. Ces informations porteront, par exemple, sur la charge de travail de chaque fil d'exécution d'un environnement, sur le nombre de faute de cache, sur le nombre et la taille des messages à échanger ou des buffers à écrire.

  • Titre traduit

    Fine-grained tasks coordination and scheduling between HPC runtimes


  • Résumé

    The objective of this thesis is to study the scheduling of management and I/O progression tasks in user space by cooperation between runtime environments within a compute node. The result of this study will focus on the scheduling algorithms for these tasks and the knowledge required on the state of the system to implement them. The application of these algorithms will also be evaluated experimentally to show performance improvements of scientific applications written in MPI+X programming models. The use of a dedicated thread for input-output progression within an MPI application has already been studied. It has been shown that the consumption of computing resources of the node by this thread has an impact on the performance of the application. Moreover, it is the operating system scheduler that manages this thread, without prior knowledge of the applications, which does not allow a scheduling that takes into account applications' states. This thesis will focus on a scheduler in user space, requiring integration in the runtime environments of the tools and libraries used by scientific applications. The aim is to set up a scheduling service on each compute node thanks to which each runtime environment will be able to externalize I/O progression tasks and also to request work dynamically when its resources are free. This service can be integrated into the existing PMIx environment used to deploy processes and their information. It will be necessary to modify the runtime environments to make it possible to interact with this new service. The two main environments used today in the MPI+X model are the MPI runtime environment and the OpenMP runtime environment. As a result, the proposed changes will be made to both these environments. Other runtime environments such as multi-threaded or manytasks execution environments may also be considered. It will also be necessary to establish new scheduling algorithms within this service, and investigate the necessary information on the state of the execution environments to implement them. This information will include, for example, the workload of each execution thread of an environment, the number of cache errors, the number and size of messages to be exchanged or buffers to be written.