Eric Fede - 1 GESTION DES PRIORITES SUR LA GRILLE
Eric Fede - 2 Plan Pourquoi des priorités L’arbitrage Le couple jobmanager/scheduler Les types de priorités (exemple torque/maui) Les points soulevés Seule la gestion des priorités au sein des sites est abordée
Eric Fede - 3 Pourquoi les priorités Différentes applications Différents types de jobs Batch Test/Validation Analyse Rapide Parallèle Différents utilisateurs Accès locaux Accès grille Différents privilèges Utiliser au mieux la ressource Nécessite un arbitrage pour l’ accès à la ressource Priorité
Eric Fede - 4 Qui arbitre ? Le site, en fonction des engagements qu’il a pris Répartition entre applications Répartition entre utilisateurs locaux et autres Support de jobs « rapides» Les applications, pour ce qui concerne les règles de priorité au sein de l’application elle-même Ratio Simulation/Analyse Ration Analyse type1 /Analyse type 2 Besoins exceptionnels Idéalement c’est le VO manager qui est en charge de pousser ces priorités dans le site, actuellement pas encore disponible (GPBOX) Cas des jobs pilotes. La nature et le propriétaire du job peuvent être cachés Cet arbitrage se fait a l’aide du jobmanager/scheduler
Eric Fede - 5 Jobmanager/Scheduleur Jobmanager : Son rôle est de recevoir et d’exécuter les jobs. Scheduler : Décide quels jobs doivent être exécutés. JOBMANAGERSCHEDULER« CPU »
Eric Fede - 6 Fonctionnement Les queues du jobmanager sont des « zones » de stockage pour les jobs. Une priorité est calculée pour chaque job en fonction de règles qui s’appliquent sur les caractéristiques ou requêtes du job. En fonction de sa priorité et des éventuelles réservations faites, une ressource (CPU) sera affectée ou non à un job Classique FIFO Torque/Maui Règlement couleurs Règlement longueurs Prochain job sera : vertProchain job sera : ? Dépend des règles
Eric Fede - 7 Caractéristiques d’un job Au sein de Maui les jobs sont essentiellement caractérisés par : USER : L’identité de l’utilisateur Utilisateur au sens UNIX. Correspondant à des utilisateurs génériques dans le cadre des jobs grille. GROUP : Le groupe du compte unix dans lequel tourne le job. CLASS : Notion liée aux queues du jobmanager. Dans la grille, les queues correspondent aux Virtual Organisation ACCOUNT : Non officiellement utilisé par la grille. Certains sites y attachent certaines caractéristiques de jobs (court, origine,…) QOS : Notion construite en fonction des besoins et permettant de caractériser un ensemble de jobs.
Eric Fede - 8 Règles de calcul des priorités de Maui La priorité d’un job est calculée à partir de différentes règles. Priorité = Σ (Coeff_ i * Priorité_règle_ i ) Les principales familles de règles sont : SERVICE : Règles de « fonctionnement » standard QUEUETIME : Règle de priorité liée au temps passé en queue RESOURCE : Règles de priorité basées sur une demande de ressource particulière. Priorité = RESWEIGHT * ( NODEWEIGHT *TotalNodesReq + proc, mem, swap, disk,… CREDENTIAL : Règles définissant les priorités de façon arbitraire. Priorité = CREDWEIGHT * ( USERWEIGHT *PriorityU + GROUPWEIGHT *PriorityG + ACCOUNTWEIGHT*PriorityA + QOSWEIGHT*PriorityQ + CLASSWEIGHT*PriorityC)
Eric Fede - 9 Règles de calcul des priorités de Maui : Fairshare Constituent les règles de calcul de la priorité des jobs principalement utilisées. Priorité = FSWEIGHT * ( FSUSERWEIGHT *DeltaU + FSGROUPWEIGHT *DeltaG + FSACCOUNTWEIGHT*DelatA + FSQOSWEIGHT*DeltaQ + FSCLASSWEIGHT*DeltaC) DeltaX = Fairshare target – Fairshare usage or 1 – (Fairshare usage/ Fairshare target) (FSPOLICY) Fairshare usage = Valeur déja consommée Se base sur un historique, limité dans le temps, des consommations passées (FSINTERVAL, FSDEPTH, FSDECAY). Le poids de l’historique diminue avec le temps. Au delà d’une période « on oublie » qui avait déjà consommé et qui n’avait pas consommé des ressources.
Eric Fede - 10 Autres méthodes discriminantes Comment au niveau d’un site, utiliser d’autres paramètres discriminants pour ordonnancer les jobs. Mettre des limites dures sur certains paramètres de job MAXPROC = XX Intéressant car MAUI ne calcule pas la priorité si une limite dure est franchie. L’ordonnancement se fera uniquement sur les priorités calculées Notion de réservation de ressource (voir talk à venir) Utiliser la caractéristique de job ACCOUNT pour autre chose que son sens premier et mettre des règles dessus. Pour identifier un certificat/proxy particulier Un type de job particulier Une personne ….
Eric Fede - 11 Quelques paramètres liés aux calcul des priorités de MAUI RMPOLLINTERVAL 00:00:30# Paramètres sur le polling du scheduleur JOBAGGREGATIONTIME 00:00:05 JOBPRIOACCRUALPOLICY FULLPOLICY# Les règles définies s’appliquent au scheduling #FSPOLICY DEDICATEDPS%#Méthode de calcul des fairshare FSPOLICY DEDICATEDPS FSINTERVAL 24:00:00# Paramètres de l’historique utilisés lors des règles fairshare FSDEPTH 21 FSDECAY 0.9 FSWEIGHT 10# Poids des règles de priorité CREDWEIGHT 1 FSGROUPWEIGHT 100# Poids des caractéristiques du fairshare FSUSERWEIGHT 10 QUEUETIMEWEIGHT 1# Poids de la règle de progression en fonction du temps en queue USERWEIGHT 1# Poids des caractéristiques du credential GROUPWEIGHT 10 CLASSWEIGHT 1 ACCOUNTWEIGHT 1 GROUPCFG[atlas_gr] FSTARGET=49 PLIST=DEFAULT#Règles des groupes GROUPCFG[lhcb_gr] FSTARGET=49 PLIST=DEFAULT GROUPCFG[ops] PRIORITY=500 PLIST=DEFAULT USERCFG[atlasp] FSTARGET=80 PLIST=DEFAULT#Règles des users CLASSCFG[local] PRIORITY=200 PLIST=DEFAULT #Règles des class ACCOUNTCFG[lapp] PRIORITY=200 PLIST=DEFAULT#Règles des account
Eric Fede - 12 Points soulevés Un job a plusieurs caractéristiques (groupe, VO, …). Sa priorité est donc une combinaison des règles de priorité qui sont elles même des combinaisons des caractéristiques des jobs. Priorité = Σ (Coeff1 * (Σ Npoids * (Caractéristiques d’un job)) Il est donc difficile de prévoir de façon précise le comportement des règles d’ordonnancement et donc la priorité affectée a un job. Risque(mineur) de voir des jobs attendrent « indéfiniment». Nécessite un monitoring du comportement du scheduleur, pour contre réagir si besoin. Compromis entre souplesse et nombre de règles à gérer ? Quelles sont les « bonnes » règles pour faire un bon ordonnancement, fairshare et credential sont suffisantes ? Problématique des jobs pilotes (identiques du point de vue du site) Priorités gérées par l’application Simuler le comportement du scheduleur
Eric Fede - 13 Discussion ?