Informatique parallèle

Slides:



Advertisements
Présentations similaires
La Méthode de Simplexe Standardisation
Advertisements

LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Théorie des graphes.
Chap. 4 Recherche en Table
M1 MASTER GESTION Séance 3 Pilotage coûts- délais
Yacine DIAGNE GUEYE ENDA ENERGIE
Algorithmes et structures de données avancés
Portée des variables VBA & Excel
Calcul géométrique avec des données incertaines
Regroupement (clustering)
RECONNAISSANCE DE FORMES
CH-IV. L’ORADONNANCEMENT
Critère d’ordonnancement en temps réel Partie II
GEF 435 Principes des systèmes d’exploitation
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Plan Ordonnancement Obtention des tests de faisabilité entre processus
Importance de l’horizon d’observation des coûts pour juger du caractère variable ou fixe des coûts de production. La courbe de coût d’une entreprise est.
Problèmes à machines parallèles avec serveur
Ordonnancement des mouvements de deux robots
Plus rapide chemin bicritère : un problème d’aménagement du territoire
Evaluation des performances en entreprise
CALCUL PARALLELE PRODUIT : MATRICE – VECTEUR 10 pages Exposé par :
Utilisation des tableaux
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
En management de Projet
6.1 URDL22005 Systèmes dexploitation Ordonnancement du CPU Concepts de Base Critères dOrdonnancement Algorithmes dOrdonnancement Ordonnancement Multi-Processeur.
LES AUTRES MÉTHODES D’ORDONNANCEMENT
Structures de données linéaires
GPA750 – Ordonnancement des systèmes de production aéronautique
Partie 1: Notions & concepts
Les Systèmes Multi-Agents pour la Gestion de Production
Algorithmique et Programmation
Parcours de formation SIN-7
Algorithmes Branch & Bound
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
Gestion de Fichiers Arbres B.
Allocation de mémoire Allocation de mémoire.
Algorithme de Bellman-Ford
GPA750 Les ateliers multigammes Chapitre 5
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Universté de la Manouba
Algorithmes d ’approximation
Recherche Opérationnelle
Module 2 : Préparation de l'analyse des performances du serveur
Page de garde présentation
Les Algorithmes de Tri Introduction Tri par Sélection
Propriétés des ordonnancements SPT
Ordonnancement de tâches
Introduction aux problèmes d'ordonnancement sans temps-morts.
SEMINAIRE DE CONTACT novembre 2008 Outils de gestion de projet.
GPA750 – Gestion de Projets
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
L ’Ordonnancement Ordonnancement.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Cours des Systèmes d’exploitations
Programmation linéaire en nombres entiers
Le système informatique et le système d’information
Recherches locales et méta-heuristiques
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Optimisation pour la Conception de Systèmes Embarqués
Post-optimisation, analyse de sensibilité et paramétrage
Systèmes d’exploitation Processus conclusion Modèle conceptuel de processus Pour masquer les effets des interruptions, les SE fournissent un modèle conceptuel.
© Copyright-CNP-EFII-Paris-1998
Chapitre 4: Ordonnancement et planification des Ordres de Fabrication.
Ordonnancement en présence d’agents individualistes
Fiabilité et défaillance
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Chapitre 12 Surveillance des ressources et des performances Module S41.
Transcription de la présentation:

Informatique parallèle IP 06 : L’ordonnancement

Description formelle

Le problème Nous disposons d’une ou plusieurs machines (au sens large) avec lesquelles nous devons réaliser un ou plusieurs travaux qui peuvent être décomposés en tâches. Sur quelles machines et dans quel ordre effectuer ces travaux de manière à optimiser l’utilisation des machines, respecter les délais, répartir la charge … ? Ce problème d’ordonnancement peut être décrit de façon formelle par : Un ensemble de machines P Un ensemble de ressources additionnelles R Un ensemble de travaux T Un ou plusieurs critères d’optimalité

Les machines L’ensemble des machines P={P1, …, Pm} Les machines dédiées Job-shop Open-shop Flow-shop Les machines parallèles Identiques Uniformes Unrelated

Les machines Open-shop (atelier de confection) Une pièce à fabriquer (travail Tj) nécessite n opérations oij qui peuvent être effectuées dans n’importe quel ordre. Flow-shop (travail à la chaîne) Un open-shop avec un ordre des opérations Job-shop (atelier de réparation) Un open-shop avec différentes pièces (donc un nombre différents d’opérations)

Les machines Processeurs identiques Tous les processeurs ont la même vitesse de fonctionnement Processeurs uniformes Les processeurs ont une vitesse de fonctionnement différente On ramène à la vitesse du proc le plus lent (bi = 1) Processeurs unrelated Les vitesses des processeurs changent en fonction du traitement à effectuer (cas général)

Les machines L’ensemble des machines P={P1, …, Pm} peut avoir une taille fixe ou variable au cours du temps : Figée : Les informations relatives à la machines parallèles processeurs, réseau …, sont stockée dans une base de données et sont « rarement » mises à jour. Cette représentation a donc une certaine probabilité d’être fausse (panne de machines), ce qui peut entraîner une erreur dans les calcul d’ordonnancement (on affecte des travaux à une machine en panne). Dynamique : La représentation est mise à jour par un système de surveillance. En cas d’écart, cela peut entraîner le recalcul des ordonnancement. Il faut trouver un compromis entre exactitude de la représentation et la perturbation engendrée par ce système (doit-on tout recalculer ou peut-on opérer une petite modification ?) Semi-dynamique : La représentation est accompagnée d’informations supplémen- taires concernant la « fiabilité » des éléments de la machine (MTBF, profil de disponibilité au cours du temps …) pour aider l’ordonnanceur a calculer des marges d’erreur sur ses prédiction et des plans de rechange.

Les machines Exemple d’information sur la « fiabilité » : Rosenberg : Affecter le plus gros travail En utilisant la probabilité d’absence afin de minimiser la destruction prématurée du travail

Les ressources additionnelles L’ensemble des ressources additonnelles R={R1, …, Rk} Des ressources « secondaires » comme la mémoire, la présence d’un équipement particulier …, ce qui permet de formaliser l’existence de contraintes supplémentaires

L’ensemble des travaux T={T1, …, Tn} Les travaux L’ensemble des travaux T={T1, …, Tn} Rigide Évolutif Modulable (Moldable) Malléable

L’ensemble des travaux T={T1, …, Tn} Les travaux L’ensemble des travaux T={T1, …, Tn} Rigide Évolutif Modulable (Moldable) Malléable Nombre de processeurs Durée Le nombre de processeurs est écrit en dur dans le code, donc la durée est indirectement fixée (en partie)

L’ensemble des travaux T={T1, …, Tn} Les travaux L’ensemble des travaux T={T1, …, Tn} Rigide Évolutif Modulable (Moldable) Malléable Phase 5 Phase 4 Un travail évolutif est découpé en phases, il doit demander l’attribution de processeurs pour chaque phase (nous pouvons le considérer comme une suite de travaux rigides). Phase 3 Durée Phase 2 Phase 1

L’ensemble des travaux T={T1, …, Tn} Les travaux L’ensemble des travaux T={T1, …, Tn} Rigide Évolutif Modulable (Moldable) Malléable Un travail modulable peut fonctionner sur des nombres différents de processeurs mais lorsque ce nombre est fixé au démarrage, il ne peut pas être modifié en cours d’exécution

L’ensemble des travaux T={T1, …, Tn} Les travaux L’ensemble des travaux T={T1, …, Tn} Rigide Évolutif Modulable (Moldable) Malléable 1 machines en moins Le nombre de processeurs peut être modifié au cours du fonctionnement afin de s’adapter à un ajout de machines ou des pannes 7 machines en plus Fonctionnement Initial

Les travaux Un travail Tj est caractérisé par les données suivantes (convention de notations) : la date de soumission du travail (ready time, arrival time ou release date) est notée rj le temps de traitement sur le processeur Pi (processing time) est noté Pij (s’il s’agit de processeurs identiques, alors Pij = Pj) la date de fin attendue (due-date ou deadline) est notée dj la priorité (priority ou weight) est notée wj les besoins en ressources sont notés Rij la date de fin effective (completion time) est notée cj le temps de traitement par le système (flow time) est noté fj et est égal à fj = cj - rj le retard relatif (lateness) est noté lj, il peut être négatif (en cas d’avance) et est égal à lj = cj - dj le retard absolu (tardiness) est noté j et est égal à j = max {0, lj}

Les travaux Son fonctionnement peut être interrompu (les informations relatifs à ce fonctionnement – le contexte – sont sauvegardés pour pouvoir être re-utilisé lors de la reprise) Un travail Tj peut être pré-emptable. Une souplesse supplémentaire dans l’ordonnancement Le coût du changement de contexte Modification du programme, capacité de l’OS …etc Son fonctionnement peut être interrompu et relancé sur d’autres machines (le contexte est sauvegardés et transmis pour pouvoir être re-utilisé lors de la reprise Un travail Tj peut être déplaçable. Une souplesse supplémentaire dans l’ordonnancement et la répartition de charge Le coût du changement de la migration Modification du programme, capacité de l’OS …etc

Les travaux Un travail Tj est caractérisé par le ratio entre les communications et les calculs : La durée des travaux n’est pas proportionnelle au nombre de processeurs utilisés Surcoût dues aux communications Durée Partie rentable Nombre de processeurs

Les travaux Un travail Tj est constitué de tâches entre lesquelles il existent des relations de précédence : Ordonnancement à 2 niveaux : Entre les travaux Entre les tâches dans un travail Durée Nombre de processeurs

Les critères d’optimalité Le critère d’optimalité : que souhaite-t-on optimiser (minimiser ou maximiser) ?  La longueur de l’ordonnancement (makespan), notée Cmax Un ordonnancement quelconque Un ordonnancement optimal

Les critères d’optimalité Le critère d’optimalité : que souhaite-t-on optimiser (minimiser ou maximiser) ?  La moyenne des dates de fin, notée  La moyenne des dates de fin pondérées, notée Temps d’attente de l’utilisateur du travail rouge, entre le début de l’exécution du lot de travaux (batch) et l’obtention de son résultat.

Les critères d’optimalité Le critère d’optimalité : que souhaite-t-on optimiser (minimiser ou maximiser) ?  La moyenne des temps de réponse, notée Temps d’attente de l’utilisateur du travail rouge, entre la soumission de son travail et l’obtention de son résultat. Formation du lot de travaux pendant l’exécution du batch précédent

Les critères d’optimalité Le critère d’optimalité : que souhaite-t-on optimiser (minimiser ou maximiser) ?  L’écart-type sur la charge des machines, notée 3 machines travaillent plus que les autres Toutes les machines ont la même charge de travail

Notation à 3 champs a | b | g Une notation pour spécifier le problème : Machine Contrainte Critère Exemples : P||Cmax, ou P|prec|Cmax

Ratio de compétitivité Critère d’un ordonnancement donné (souvent makespan) Même critère d’un ordonnancement optimal

L’ordonnancement L’ordonnancement peut être vu comme la combinaison de deux actions : L’affectation consiste à déterminer pour chaque travail à accomplir l’ensemble des processeurs chargés de l’exécution. Cette affectation peut être de différentes natures : Fixe : défini par l’administrateur pour « coller » à des contraintes administratives ou matérielles Variable : défini à la volée lors de la soumission des travaux rigides (elle peut être « arrondie » au nombre de processeurs supérieur pour respecter des contraintes techniques ou administratives Adaptable : semblable à la précédente mais concerne les travaux modulable ou malléable en se basant sur les machines « disponibles » et les conformations possibles des travaux Dynamique : la taille change en fonction de l’arrivée de nouvelles machines (ou les pannes) et ne concerne que des travaux malléables Le séquencement est la détermination du moment où s’accomplira le travail sur les processeurs affectés à son exécution

3 stratégie d’ordonnancement … L’ordonnancement étant composé de deux actions, on peut distinguer 3 stratégies : Le space-slicing partage les processeurs de la machine parallèle entre les travaux à exécuter sans recourir à la préemption. Elle revient à résoudre un problème de bin-packing consistant à placer des rectangles (modélisant les travaux) dans un rectangle englobant (correspondant au diagramme de Gantt) Le time-slicing découpe le temps de fonctionnement de la machines parallèles en quantum afin d’exécuter successivement différents travaux parallèles (extension du multi-tâches mono-processeurs au cas multi-processeur) Le gang-scheduling est une variante de la deuxième stratégies où 1 seul travail parallèle (qui occupe l’ensemble des machines) est exécuté par quantum de temps Space-slicing Time-slicing Gang-scheduling

Le bin-packing Le bin-packing a une dimension : Etant donnée des boîtes de capacité C>0 et une liste d’objet o1, o2 … ayant une taille respective 0 < ci  C. Quel est le rangement qui utilise le minimum de boîtes ? Ce problème peut modéliser le problème de « mise en barre » qu’on rencontre en chaudronnerie Le bin-packing a deux dimensions : Etant donnée des boîtes de dimension (L x l) et une liste d’objet o1, o2 … ayant comme dimensions respectives 0 < Li , li  L, l. Quel est le rangement qui utilise le minimum de boîtes ? Dans ce cas de figure, on peut autoriser ou non a basculer la boite (L devient l et inversement ce qui augment la combinatoire) Le bin-packing a trois dimensions est identique au problème précédent mais avec une dimension supplémentaire, il peut modéliser le problème de « mise en boite » des transporteurs http://users.cs.cf.ac.uk/C.L.Mumford/heidi/BinPacking.html

Casavant et Kuhl Approchée Heuristique Sous-optimale Optimale Coopérative Non coopérative Distribuée Centralisée Dynamique Gloutonne Itérative Statique Allocation des tâches

Nous prenons les décisions au fur et à mesure de l’arrivée des travaux Statique et dynamique Dans le cas dynamique (On-line), nous n’avons aucune connaissance des travaux à venir Nous prenons les décisions au fur et à mesure de l’arrivée des travaux

Nous essayons de trouver un bon arrangement Statique et dynamique Dans le cas statique (Off-line), nous avons un ensemble fini et parfaitement connu de travaux Nous essayons de trouver un bon arrangement

Quelques algorithmes et heuristiques pour Cmax

Un algorithme : Branch and bound 3 (17) 4 (16) 5 (18) 1 (60 2 (36 départ 1 (20) 2 (24) 1 (19) 2 (19) 3 (19) 5 (16) 1 (52) 2 (40) 3 (27) Mise à jour de la varia-ble « meilleur coût » : 19 remplace 22 Branches non explorée car le coût cumulé devient supérieur au meilleur coût

Quelques heuristiques pour Cmax Politique d’ordonnancement [Casavant & Kuhl] On-line Off-line Type de travaux [Feitelson] Rigide Modulable Graham SJF LJF XF Graham SJF LJF XF Strip-packing Heuristic : e.g. Steinberg Allocation + Turek Graham SJF LJF XF MRT

Shortest Job First (SJF) Dans le cas monoprocesseur, SJF consiste simplement à placer en premier les petits travaux (petites durées), ce qui permet de minimiser la somme de Cj Dans le cas présent, cette somme est égale à 1+3+6+10+15+21=56. Tout autre ordonnancement présentera une somme des Cj supérieure ou égale à 56. Par exemple, si on permute les deux premiers travaux, on 2+3+6+10+15+21=57 Dans le cas présent, cette somme est égale à 1+3+6+10+15+21=56. Tout autre ordonnancement présentera une somme des Cj supérieure ou égale à 56. Par exemple, si on permute les deux premiers travaux, on 2+3+6+10+15+21=57 Dans le cas multi-processeur, la notions de petits travaux est moins “évidente” car il peut concerner la durée ou le nombre de processeurs. On privilégiera la durée par rapport au nombre de processeurs (on part du principe qu’il faut libérer rapidement les processeurs occupés)

Shortest Job First (SJF) Dans le cas off-line, on connaît tous les travaux donc on peut les ordonner en prenant dans l’ordre croissant de leur durée (estimée) d’exécution (et non de leur durée d’arrivée)

Shortest Job First (SJF) Dans le cas on-line, on ne connaît tous les travaux, le tri s’effectue dans le buffer pendant l’exécution d’autres travaux. Ces travaux sont ensuite ré-injectés dans le nouvel ordre dans le diagramme de Gantt

Largest Job First (LJF) LJF est une heuristique « duale » de la précédente. Elle ne permet (bien sûr) pas de minimiser la somme de Cj mais elle est utilisée pour favoriser les gros travaux par rapport aux petits dans certaines plages horaires des centres de calcul (NASA …etc) Off-line On-line

eXpension Factor (XF) XF (eXpension Factor) classe les travaux par ordre décroissant de leur facteur d’expansion défini par , ce qui permet de tenir compte du temps passé par les travaux dans la file d’attente (plus, ils y restent longtemps, plus ils deviennent prioritaires). L’ordonnancement s’effectue donc en se basant sur le Xfactor et La durée de traitement estimée des travaux http://www.cis.ohio-state.edu/~kettimut/iwpp02.pdf

Le backfilling Les mécanismes précédents peuvent être améliorés par le mécanisme de backfilling qui analyse la file d’attente « après » avoir ordonnancé les travaux afin de vérifier si le démarrage anticipé de petits travaux n’améliore le taux d’utilisation de la machine parallèle. Il en existe deux versions : Travaux dans la file d’attente (dans l’ordre d’arrivée) Le backfilling conservateur bouche les trous avec des petits travaux sans retarder d’autres travaux (situation à long terme amélioré (2)) Le backfilling aggressif bouche les trous avec des travaux en acceptant d’en retarder d’autres (situation à court terme amélioré (3)). On espère que d’autres travaux arriveront pour améliorer 4 (Amélioration de 3’, 3’’ …etc) 2 4 1 3 Backfilling conservateur Backfilling conservateur (EASY)

Quelques heuristiques pour Cmax Type de travaux [Feitelson] Rigide Modulable Politique d’ordonnancement [Casavant & Kuhl] On-line Off-line Graham SJF LJF XF Allocation + Strip-packing Heuristic : e.g. Steinberg Turek MRT

Graham 66 Cette heuristique a été proposée par Graham en 1966. Cette heuristique est aussi connue sous le nom d’algorithme glouton ou d’algorithme de listes car elle se base sur deux listes : les machines prêtes; les travaux prêt. Dans le cas on-line, nous essayons de démarrer les travaux dès qu’ils arrivent s’il y a suffisamment de processeurs sinon ils sont stockés dans la liste des travaux prêts Dans le cas off-line, nous prenons les travaux dans l’ordre en fonction du lien de précédence 2 Ce système a plutôt tendance à favoriser les petits aux détriments des gros (2 est arrivée avant 3 mais 3 s’exécute avant car il a suffisamment de processeurs pour commencer contrairement à 2) 1 3

Graham 66 Cmax   Cmax * 19  (2-0,1) x 10 Cmax=10 * Cmax=19

Graham 66 Cmax   Cmax ? * pi m Cmax  et Cmax  max pi * * Cmax = max (ri + pi)  K tel que Cmax = rk + pk (Tk est le dernier travail à être exécuté) pi m rk  Toutes les machines sont occupée à la date rk donc i  k pi m pi m pk m Cmax  + pk  Cmax  - + pk i  k 1 m Cmax  + pk  Cmax  Cmax + (1 - ) pk * 1 m Cmax  + pk  Cmax  Cmax + (1 - ) Cmax * * 1 m  = 2 -

Graham 66 T1 (1) T6 (4) T7 (4) T8 (4) T9 (4) T10 (9) T2 (3) T3 (2) T4 (2) T5 (2) 1 7 6 8 9 2 3 5 4 10 1 2 3 5 4 T1 (1) T2 (3) T3 (2) T4 (2) T5 (2) T6 (4) T7 (4) T8 (4) T9 (4) T10 (9) 1 7 6 8 9 10 2 3 5 4 T1 (1) T6 (4) T7 (4) T8 (4) T9 (4) T10 (9) T2 (3) T3 (2) T4 (2) T5 (2) 1 2 3 5 4 T1 (1) T6 (4) T7 (4) T8 (4) T9 (4) T10 (9) T2 (3) T3 (2) T4 (2) T5 (2) 7 6 8 9 T1 (1) T6 (4) T7 (4) T8 (4) T9 (4) T10 (9) T2 (3) T3 (2) T4 (2) T5 (2) 1 T1 (1) 13 P1 P2 P3

Graham 66 13 13 1ère anomalie de Graham : Si on ajoute un processeur, 2 3 4 5 8 7 6 9 13 1 T1 (1) T10 (9) 10 P1 P2 P3 P4 8 7 6 T6 (4) T7 (4) T8 (4) T9 (4) 9 2 3 4 T2 (3) T3 (2) T4 (2) T5 (2) 5 T1 (1) T10 (9) T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) 1 2 3 4 5 T1 (1) T10 (9) T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) 1 8 7 6 9 2 3 4 5 10 13 T1 (1) T10 (9) P1 P2 P3 P4 T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) 1 T1 (1) 1ère anomalie de Graham : Si on ajoute un processeur, le makespan peut augmenter

Graham 66 13 13 2ème anomalie de Graham : Si on diminue la durée des 7 8 9 2 3 5 4 T1 (1) T6 (3) T7 (3) T8 (3) T9 (3) T10 (8) T2 (2) T3 (1) T4 (1) T5 (1) 10 1 2 3 5 4 T1 (1) T6 (3) T7 (3) T8 (3) T9 (3) T10 (8) T2 (2) T3 (1) T4 (1) T5 (1) P1 P2 P3 1 6 7 8 9 2 3 5 4 T1 (1) T6 (3) T7 (3) T8 (3) T9 (3) T10 (8) T2 (2) T3 (1) T4 (1) T5 (1) 13 10 T1 (1) T6 (3) T7 (3) T8 (3) T9 (3) T10 (8) T2 (2) T3 (1) T4 (1) T5 (1) 1 2 3 5 4 6 7 8 9 P1 P2 P3 T1 (1) T6 (3) T7 (3) T8 (3) T9 (3) T10 (8) T2 (2) T3 (1) T4 (1) T5 (1) 13 1 T1 (1) 2ème anomalie de Graham : Si on diminue la durée des travaux de 1 unité, le makespan peut augmenter

Graham 66 13 13 3ème anomalie de Graham : Si on relâche certaines 8 7 9 2 3 5 4 10 T1 (1) T10 (9) T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) 1 6 8 7 9 2 3 5 4 13 P1 P2 P3 1 6 8 7 9 10 2 3 5 4 T1 (1) T10 (9) T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) P1 P2 P3 T1 (1) T10 (9) T6 (4) T7 (4) T8 (4) T9 (4) T2 (3) T3 (2) T4 (2) T5 (2) 13 1 T1 (1) 3ème anomalie de Graham : Si on relâche certaines contraintes de précédence, le makespan peut augmenter

Quelques heuristiques pour Cmax Type de travaux [Feitelson] Rigide Modulable Politique d’ordonnancement [Casavant & Kuhl] On-line Off-line Graham SJF LJF XF Allocation + Strip-packing Heuristic : e.g. Steinberg Turek MRT

Le strip-packing Etant donnée des boîtes de dimension (L x ) et une liste d’objet o1, o2 … ayant comme dimensions respectives 0 < Li , li  L, l. Quel est le rangement qui minimise la seconde dimension ? Ce problème est étudié dans le cadre informatique mais également dans le cadre d’atelier de production (menuiserie, chaudronnerie …). Comme dans le cas du bin-packing à deux dimension, on peut autoriser ou non a basculer la boite (L devient l et inversement ce qui augment la combinatoire). Nous pouvons également imposer quelques contraintes afin de refléter la réalité du Traitement : par exemple, si on utilise une cisaille, la coupe se déroule sur toute la longueur (ou la largeur) de la tôle mère (ou d’une partie de cette tôle)

Steinberg ? …etc a1 b1 T1 b2 a2 T2 T3 a3 b3 L u Q v avec

Steinberg Pour résoudre le problème (Q,L), Steinberg a défini 7 procédures qui peuvent effectuer 2 types de traitement : couper le problème en 2 sous-problèmes (Q’, L’) and (Q’’, L’’) qui sont plus faciles à résoudre; résoudre une partie du problème (Q,L) et former un nouveau problème (Q’, L’) avec la partie non résolue.

Steinberg u v v’ u/2 La procédure P1 (réalisable si ) : Travaux classés par le nombre de processeurs utilisés dans l’ordre décroissant u/2 v v’ Nous plaçons les travaux dans le coin inférieur gauche du diagramme de Gantt tant que le nombre de processeurs est supérieur à u/2 Nous obtenons une pile de travaux ayant une hauteur v’

Steinberg u v v’ u’ Les travaux restants sont classés par durée dans La procédure P1 (réalisable si ) : v’ v u Les travaux restants sont classés par durée dans l’ordre décroissant u’ Nous plaçons les travaux dans le coin supérieur droit du diagramme de Gantt tant que la durée est supérieure à v’ Nous obtenons un ensemble de travaux ayant une largeur u’

Un nouveau sous-problème à résoudre Steinberg La procédure P1 (réalisable si ) : v’ v u u’ u-u’ v-v’ Un nouveau sous-problème à résoudre

Steinberg La procédure P3 (réalisable si et ) : Nous considérons et nous coupons le rectangle Q dans le sens de la largeur, nous obtenons alors : le rectangle Q’ ayant une largeur et une longueur   ; le rectangle Q’’ de dimension et . Nous scindons la liste L en deux sous-listes : L’={R1 … Rm} ; L’’={Rm+1 … Rl}.

Steinberg Ri Rk Q’ u v v’ u’ La procédure P2 est réalisable si et Nous plaçons les travaux Ri et Rk dans le coin inférieur gauche du diagramme de Gantt, nous en déduisons le rectangle Q’ dans le coin opposé Nous obtenons un nouveau problème (Q’, L’) avec L’=L \ {Ri ; Rk}

Steinberg Rk Q’ u v v’ u’ La procédure P0 est réalisable si et Nous plaçons le travail Rk dans le coin inférieur gauche du diagramme de Gantt, nous en déduisons le rectangle Q’ dans le coin opposé Nous obtenons un nouveau problème (Q’, L’) avec L’=L \ {Rk}

Steinberg Les 3 dernières procédures (P-1, P-2 et P-3) sont en fait les procédure P1, P2 et P3 appliquées à la transposée du problème (Q, L) autrement dit le problème (Q’, L’) où les rôles des hauteurs et des largeurs sont échangés.

Quelques heuristiques pour Cmax Type de travaux [Feitelson] Rigide Modulable Politique d’ordonnancement [Casavant & Kuhl] On-line Off-line Graham SJF LJF XF Allocation + Strip-packing Heuristic : e.g. Steinberg Turek MRT

MRT (3/2) On fixe une durée maximale DM , une durée minimale Dm et on calcule D = (DM + Dm)/2 L’algorithme essaye de calculer un ordonnancement ayant une durée de 3/2 D. Cet algorithme retourne Un ordonnancement correct Un ordonnancement incorrect L’ordonnancement (la liste des affectations) est enregistré et on recommence l’algorithme en recalculant D avec DM = D On recommence l’algorithme en recalculant D avec Dm = D Condition d’arrêt de cette recherche dichotomique de D : DM – Dm < 

On met les petites tâches MRT (3/2) Etant donné un ensemble de travaux malléables où chaque travail possède son propre profil qui reflète sa capacité à être parallélisé On met les petites tâches séquentielles de côté Sac à dos On sépare les travaux en deux ensembles S1 et S2 sur deux étagères Etant donnée une durée D 3 2 D Etant donné un ensemble M de processeurs identiques M

MRT (3/2) : le sac à dos Sac à dos : maximiser  i ui … etc Lunette de soleil Utilité u1 Capacité c1 Boussole Utilité u2 Capacité c2 Boisson Utilité u3 Capacité c3 Sac à dos : maximiser  i ui respecter  i ci  C Ce problème est connu pour être NP-complet Sac à dos d’une capacité C http://eleves.ensmp.fr/P00/00rouaul/sacados/sacados_texte.html

MRT (3/2) 3 Transformations possibles : D S’il reste des processeurs libres sur la première étagère, essayer de descendre une tâche de la 2ème étage. Si deux tâches de la 2ème étagère ont des durées complémentaires sur 1 processeur alors les mettre l’une au dessus de l’autre dans S0. 3 2 D Si une tâches de S1 a une durée inférieure à ¾ D alors la mettre sur p -1 processeurs dans S0. M

MRT (3/2) 2 Transformations à effectuer : D M On essaye de tasser l’ordonnancement en descendant les travaux de S2. On ajoute les tâches séquentielles qui ont été mises de côté. 3 2 M D

Autres recherches actuelles

Les comms : duplication 3 1 2 4 5 6 Diminution du makespan

On-line vers off-line: regroupement 3/2 et Steinberg sont des heuristiques off-line Le fonctionnement d’IXI est orienté on-line Regroupement des travaux Avec un seuil sur la quantité cumulée de travaux Regroupement des travaux durant le fonctionnement du batch précédent (Shmoys) Avec un seuil sur le nombre de travaux Périodiquement

Le raffinement d’ordonnancement Durée nombre de processeurs

Le raffinement d’ordonnancement Durée nombre de processeurs

sessions interactives et batchs

sessions interactives et batchs Ordo 2 Ordo 1 Reg Sep Sep Reg Ordo 1 Ordo 2 Part du cluster dédié aux travaux travaux interactifs pendant le jour Part du cluster dédié aux batchs pendant les creux (nuit, week end …)

La répartition de charge

Cas de la dynamique moléculaire Les forces de liaison Les forces de rotation Les forces de torsion (l’angle dièdre) Energie de Coulomb en O(1/r) + - Energie de Van Der Waals en O(1/r6)

? Le découpage en cubes Pile de processeurs Calcul des forces d’interaction géométrique Calcul des forces d’interaction non-liée Calcul du mouvement par intégration numérique des équations de Newton

Le découpage en cubes

La bipartition récursive (1)

La bipartition récursive (2)

La bipartition récursive (n) A l’issue de la bipartition, lorsqu’il ne reste qu’un seul processeur, nous lui affectons l’ensemble des boîtes

La bipartition récursive fine (1)

La bipartition récursive fine (2)

La bipartition récursive fine (3)

La bipartition récursive fine (4)

Impact de la largeur de coupe

Impact de la largeur de coupe

Evolution of IXI: meta-clustering Load balancing Statistics Service Internet User Incoming mails server (POP3…) Scheduling Service Information in XML format providing by Ganglia sensors Cluster IXI client IXI server Cluster Managing Service Mailing Service Monitoring Service Storing Service Connecting Service