Rapport de stage en Master Recherche Informatique Ordonnancement de tâches dans des grappes de calculateurs par Jérôme Gallard Équipe d’accueil : PARIS Encadrement : Christine Morin, Emmanuel Jeanvoine Juin 2007 Contact IRISA/ INRIA Rennes Campus universitaire Avenue du Général L 35042 RENNES cede Téléphone : 02 99 84 Table des matières Résumé Mots-Clés Abstract . Keywo r ds org7 Sni* to View Les grappes gérées avec les systèmes à image unique . 1. 3. 1 Introduction aux systèmes à Image unique 1. 3. 2 GLUniX 1. 3. 3 aproc I . 3. 4 1. 3. MOSIX . 1. 3. 6 Kerrighed Ordonnancement de tâches communicantes 1. 4. 1 Le Gang-Scheduling . 1. 4. 2 Le Co-Scheduling . 1. 4. 3 Le co-ordonnancement faiblement couplé (loosely coordinated COScheduling).. 1. 4. 4 Le co-ordonnacement exible (Flexible Coscheduling ) . Bilan 2 Objectifs du stage 2. 1 2. 2 2. 3 2. 4 Présentation des problèmes à traiter . 2. 1. 1 contexte 2. 1. 2 Caractéristiques d’un ordonnanceur . Objectifs . Approche Contributions . g) 3. 3 3 OF g) Présentation des algorithmes conçus . 3. 7. 1 Initialisation des centres de décision 3. . 2 Fonctionnement des centres de décision pour
Mots-Clés : Grappes de calculateurs, ordonnancement, applications parallèles. Abstract Nowadays, HPC (H’gh Performance Computing) is very used for running simulations. The user has an application and a pool of ressources. He wants to run his application on this pool of ressources With a maximum of e ciency. To do this, he needs a system able to manage the pool of ressources. We call this system a scheduler. To schedule an application on a supercomputer is now a well known topic. But, the happening of the clusters brings problems about application scheduling.
For example, in a cluster, a node can acess to the memory of a distant node and, in certain cases can decrease the performances of the wall system. ln this report, we will discuss about this several kinds of roblem and we will give a design for a generic scheduler. Keywords : Clusters, scheduling, application. RÉSUMÉ OF g) d’a nité génétique entre di érentes familles d’animaux. Dans tous les cas, l’objectif est d’exécuter les applications le plus rapidement possible, c’est-àdire réduire le temps entre la soumssion de l’application et l’obtention des résultats.
C’est cela qu’on appelle le calcul à haute performance (HPC – High Performance Computing Autrefois, le calcul à haute performance était principalement réalisé sur des supercalculateurs. Avec l’évolution des echnologies, une nouvelle architecture est apparue, c’est celle des grappes de calculateurs. Une grappe de calculateurs est l’interconnexion de calculateurs par un réseau rapide. Les grappes sont beaucoup plus évolutives que les supercalculateurs et cela aussi bien du point de vue du matériel que du logiciel.
De plus, avec l’évolution du prix du matériel [7], les grappes de calculateurs s’implantent de plus en plus dans le monde du calcul intensif. A n d’utiliser e cacement une grappe de calculateurs, il est nécessaire de faire de l’ordonnancement. L’ordonnancement consiste à exécuter un nsemble de tâches sur un ensemble de ressources selon une politique dé nie. Les travaux présentés dans ce document ont été e ectués au cours d’un stage de Master Recherche, qui s’est déroulé à IIIRISA, au sein de l’équipe PARIS, et plus particulièrement dans le contexte de l’activité de recherche Kerrighed.
Cette activité de recherche a pour but de concevoir et mettre en +uvre un système d’explo’tation nommé Kerrighed pour grappe de calculateurs. Kerrighed est un système à image unique qui permet une virtualisation des ressources. Son but est de ournir à l’utilisateur l’impression d’utiliser une machine multiprocesseur virtuelle a n de faciliter I PAGF 7 OF g) à l’utilisateur l’impression d’utiliser une machine multiprocesseur virtuelle a n de faciliter l’utilisation de la grappe.
Cependant, malgré cette facilité d’utilisation, l’on se rend compte que dans beaucoup de cas, la gestion des applications sur ces grappes n’est pas optimum, et les grappes sont sous-exploitées. Par exemple, prenons le cas d’une application constituée de plusieurs processus communicants. L’exécution de cette application sur une grappe peut perdre en cacité si l’ordonnancement des processus se fait de manière quelconque. Cela est dû au fait qu’il est plus e cace d’ordonnancer des processus communicants smultanément.
L’objectif de ce stage est de concevoir un ordonnanceur pour grappe de calculateur qui soit simple d’utilisation. Son but est d’être transparent par rapport à l’utilisateur. L’infrastructure que nous concevons doit permettre la régulation d’une charge de travail au cours du temps sur la grappe, c’est-à-dire ne pas exécuter plus de travail que la grappe n’est capable d’en exécuter pendant une unité de temps. De plus, elle doit faire de l’équilibrage de la charge entre les di érentes ressources de celle-ci, c’est-à- dire, homogénéiser au mieux le travail à e ectuer sur toutes les ressources disponibles de la grappe.
Ainsi, le placement et le déplacement des processus sur la grappe doit se faire cours du temps en fonction de la disponibilité des ressources. De plus, nous voulons que cet ordonnanceur soit con gurable dynamiquement et évolutif, c’est-à-dire adaptable à di érente situation dé nie par l’administrateur de la grappe. En n, nous voulons une infrastructure genérique qui ne soit pas ontraint à un type d’action préréglé pour la gestion de re BOF g) infrastructure générique qui ne soit pas contraint à un type d’action préréglé pour la gestion de ressources prédéterminées. our faire cela, dans le premier chapitre nous présentons l’état de l’art relatif à l’ordonnancement des tâches sur les grappes cela nous permet de faire un bilan et de dé nir nos objectifs par rapport à l’existant. Puis, dans le second chapitre nous précisons le sujet de stage et les objectifs à atteindre. Le chapitre trois, expose les principes de conception e notre ordonnanceur. Dans un quatrième chapitre, nous présentons quelques politiques d’ordonnancement existantes que nous décrivons et que nous appliquons à notre ordonnanceur.
Dans le cinquième chapitre, nous décrivons la mise en +uvre du système et présentons 2 INTRODUCTION quelques évaluatlons de notre prototype. En n nous concluons et donnons quelques perspectives de travail. Chapitre 1 État de l’art Dans ce chapitre nous présentons l’état de l’art relatif ? l’ordonnancement dans les grappes de calculateurs. Dans un premier temps, nous dé nissons ce qu’est une tâche, une essource et ce qu’est l’ordonnancement.
Puis nous présentons les systèmes à execution par lots ainsi que di érentes politiques d’ordonnacement de tâches qui permettent de gérer les n*uds sur les grappes. No nsuite une autre PAGF g OF g) l’utilisateur est assurée par un système d’exploitation. Soit un processus [14] une succession d’instructions exécutées par un processeur et manipulées par l’ordonnanceur du système d’exploitation. On peut considérer un processus comme une instance d’un programme. Soit une tâchel éventuellement constituée de plusieurs processus coopérants. Elle peut ?tre séquentielle ou parallèle.
Une tâche composée de plusieurs processus peut donc s’exécuter sur une architecture de type multiprocesseur a n que les processus de la tâche puisse s’exécuter sur des processeurs distincts. Certalnes tâches ont des processus qui communiquent entre eux par échange de messages (MPI PVM D’autres utilisent la mémoire partagée o erte par l’architecture ou le système d’exploitation [3]. Il existe des tâches qui peuvent être modi ées en cours de fonctionnement, on les nomme tâches malléables. Ces tâches sont capables de s’adapter dynamiquement aux ressources isponibles sans avoir besoin d’être arrêtées et redémarrées. . 1. 2 Les ressources Dans les calculateurs Les ressources utilisées par un processus sont principalement : le processeur, la mémoire vive et les disques durs. Un processeur exécute les instructions des processus. La mémoire vive est un espace de stockage temporaire dont le temps d’accès (par le processeur) est très faible (de l’ordre de la centaine voire de la dizaine de nanosecondes). Les disques durs sont les unités de stockage permanent (temps d’accès très long de l’ordre de la dizaine de millisecondes).