Les riches heures de l ordonnancement

Dimension: px
Commencer à balayer dès la page:

Download "Les riches heures de l ordonnancement"

Transcription

1 Les riches heures de l ordonnancement Denis Trystram Grenoble INP 51 avenue J. Kuntzmann, F Montbonnot St. Martin Institut Universitaire de France RÉSUMÉ. Paralléliser c est exécuter des opérations (instructions ou programmes) sur plusieurs ressources simultanément. Gérer efficacement la répartition de tâches sur ces ressources est un problème qui se pose quel que soit le support d exécution matériel, le système d exploitation ou le langage cible choisi pour exécuter une application et à tous les niveaux (instructions élémentaires, composants de bibliothèque, applications). De plus, on peut envisager ce problème de différents points de vue (utilisateurs, administrateurs système). L ordonnancement est au cœur de la gestion efficace de ressources. Il s agit de déterminer où et quand exécuter les tâches en optimisant si possible un ou plusieurs objectifs avec des contraintes variées. C est un problème qui s est posé dès l introduction des premières machines vectorielles et parallèles dans les années 1970 et qui reste aujourd hui toujours d actualité, souvent avec des déclinaisons bien plus larges comme nous allons essayer de le montrer dans cet article. L objectif ici est de dresser un bilan des recherches menées lors des dernières décénies autour du thème de l ordonnancement dans le contexte du parallélisme et d en discuter les principaux enjeux aujourd hui. Nous défendons en particulier une approche de conception d algorithmes bien fondée sur le plan théorique, permettant à faible coût d obtenir des garanties de performance. ABSTRACT. Parallelizing means executing simultaneously multiple operations. The efficient management of the assignment of tasks on available computing resources is a challenging problem. Whatever the considered execution support, this problem is crucial at any level from basic instructions, library components to full applications. Moreover, it can be studied from various points of view (users, system administrators). Scheduling is the main part for efficient resource management. It consists in determining where and when to execute the tasks while optimizing one or several objectives under hardware constraints. This is an old problem which arised with the first vector machines in the early seventies. Today, it is still a challenging problem since many new constraints should be considered. The purpose of this paper is to review the main constraints and to show how to take them into account in the scheduling policies. We defend a position of well-founded approaches for designing scheduling algorithms that allow to obtain guaranteed performances at a reasonable cost. MOTS-CLÉS : parallélisme, optimisation combinatoire, gestion de ressources, ordonnancement. KEYWORDS: parallelism, combinatorial optimization, resource management, scheduling. DOI: /TSI c 2012 Lavoisier Technique et science informatiques n o /2012,

2 1022 TSI. Volume 31 n o / Introduction Le thème de l ordonnancement est transversal à la plupart des disciplines du parallélisme. Il s y décline de nombreuses manières. Informellement, on peut présenter l ordonnancement comme l allocation de travail (instructions élémentaires d un programme ou grosses applications de simulation numériques) sur des ressources (registres, CPU, co-processeurs de calcul, mémoires ou liens de communication). La difficulté provient de ce que les ressources sont limitées et ont leurs propres contraintes. Domaine ancien, l ordonnancement reste parfaitement d actualité. Il a motivé des recherches dans diverses disciplines depuis l apparition des premières machines parallèles il y a plusieurs dizaines d années. Il est encore plus ancien (et reste toujours très actif) dans la communauté de la recherche opérationnelle pour ses applications aux systèmes manufacturiers. Des liens étroits se sont tissés entre ces communautés au fil des années. La recherche opérationnelle fournit des outils puissants pour la résolution, le parallélisme (comme les réseaux, télécommunications, systèmes embarqués, etc.) offre une ouverture sur de nouveaux domaines d applications. Il existe un groupe de travail au sein du GdR ASR sur les modèles de calcul, l algorithmique parallèle et l ordonnancement, et plusieurs projets concernant le parallélisme ont également été soutenus par le GdR RO (en particulier, étude de flexibilité et robustesse pour l ordonnancement, génération aléatoire de graphes de précédence, ordonnancement hétérogène sur des GPU, etc.). Nous proposons ici une extension de la présentation donnée lors des vingtièmes rencontres du parallélisme en mai 2011 à Saint-Malo qui dresse les grandes lignes de l évolution du domaine de l ordonnancement depuis l apparition du parallélisme en Informatique. Dans un premier temps, nous présentons l évolution des platesformes de calcul parallèles. Ceci permettra de dégager les principales caractéristiques et contraintes intervenant dans les problèmes d ordonnancement et de discuter des modèles et de leur pertinence. En effet, il s agit de construire des outils qui suivent (et quelquefois même anticipent) les évolutions technologiques. Nous détaillons les principaux résultats obtenus en ordonnancement (complexité, approximation) sur des problèmes simples et présentons comment les généraliser à la plupart des hypothèses réalistes. Cet article se termine par une ouverture et une discussion sur des enjeux actuels. 2. Un peu d histoire Evolution des plates-formes parallèles Bien que très ancienne, l idée du parallélisme en Informatique s est développée au milieu des années 1970 sous des formes primitives dans les premières machines vectorielles, ciblées sur des applications numériques (manipulant des données régulières, organisées en tableaux ou matrices). Les unités de calcul étaient pipelinées et quelques périphériques d entrées-sorties fonctionnaient déjà en parallèle des calculs. On a vu se développer beaucoup de travaux pour rendre efficaces les codes numériques. Le

3 Les riches heures de l ordonnancement 1023 principe commun est d organiser un découpage fin des codes pour tirer parti au mieux des caractéristiques architecturales (taille des registres, temps de cycle des unités de calcul, bande passante mémoire, etc.). Des résultats de ce type ont été rapidement intégrés dans les compilateurs. L évolution naturelle de ces systèmes a consisté à regrouper entre elles quelques unités vectorielles communicant par une grande mémoire partagée. Les supercalculateurs ont évolué en faisant appel à des processeurs de plus en plus sophistiqués. La décennie des années 1980 est caractérisée par un foisonnement d idées et de réalisations concrètes de machines parallèles. Parmi les plus significatives, citons les machines construites à base du processeur anglais Transputer issu de projets européens. Ce processeur possédait 4 liens physiques pour connecter directement d autres transputers à sa mémoire locale. N ayant pas de matériel adapté au calcul flottant, il a connu plus de succès pour programmer les machines à laver que pour le calcul scientifique. C est également à cette époque qu est sortie la Connection Machine (CM2) avec ses 2 16 processeurs 1-bit (en pratique, chaque carte de 32 bits formait une unité flottante). Chaque constructeur de microprocesseurs a proposé sa propre version d une machine parallèle en adaptant les processeurs à de nouvelles fonctionnalités et à un réseau d interconnexion avec de bonnes propriétés. Les livres (Leighton, 1992) (Cosnard, Trystram, 1993) permettront de satisfaire les lecteurs les plus curieux. Les contraintes économiques ont vite remis de l ordre dans cette période qui a duré quelques années. Ce foisonnement d idées a conduit à la convergence vers des machines distribuées de quelques centaines à milliers de processeurs reliés physiquement par un réseau d interconnexion physique structuré. Elles ont été développées dans le cadre de quelques grosses entreprises. C était en quelque sorte les ancêtres des grappes actuelles. L idée de la grille, proposée dans les années 1990 (Foster, Kesselmann, 2004), était à l origine de construire une infrastructure de calcul distribuée pour faire tourner des applications à distance. Une telle plate-forme est constituée de multiples systèmes mutualisés, possédant chacun leur administration propre, ces systèmes étant dispersés géographiquement et hétérogènes. Le succès de l entreprise est d en avoir permis l accès à de nombreux chercheurs partout dans le monde, en particulier dans certains pays défavorisés. La grille a évolué rapidement vers de grosses infrastructures lourdes à gérer (et pas seulement du seul point de vue technique...). Cette idée a pu être réalisée en particulier grâce au développement d Internet et des réseaux rapides. Le concept de grille s est décliné de diverses façons. A la fin des années 1990, naît le projet NOW (Networks of Workstations) à Berkeley qui regroupe plusieurs centaines de stations de travail connectées localement et qui dépassent la puissance de calcul des gros supercalculateurs. Un peu plus tard, apparaît le calcul volontaire (volunteer computing) conçu pour des calculs spécifiques à parallélisme massif et simple à gérer (par exemple pour la recherche de grands nombres premiers ou pour les projets etc.). Ces dispositifs regroupent des centaines de milliers de machines et ont largement contribué à populariser le calcul parallèle auprès du grand public (Anderson, Fedak, 2006). Dans ces systèmes, les

4 1024 TSI. Volume 31 n o /2012 mécanismes sont simples : un programme client est déployé sur chaque machine volontaire lorsqu elle est inutilisée. Ils sont bien adaptés à certains types d applications avec peu de communications et plusieurs infrastructures logicielles permettent de gérer ces systèmes comme BOINC ou le projet français xtremweb. Cette présentation ne serait pas complète si l on n évoquait pas certaines plates-formes de calcul issues du pair-à-pair, caractérisées par leur gestion décentralisée. Les grappes de PC (ou clusters) constituent une alternative flexible et à moindre coût aux autres formes de calcul. Beaucoup de machines de ce type figurent au Top500 des infrastructures de calcul les plus puissantes au monde. Les processeurs sont souvent standard, relativement homogènes, reliés par un réseau local et placés sous une administration centralisée unique. Plus récemment, les progrès technologiques ont permis d intégrer plusieurs cœurs sur une même carte. On décline ainsi les plates-formes précédentes à partir de ces nouveaux processeurs multicœurs et de plus en plus de many-cores selon le nombre mis en œuvre. Comme dans beaucoup d autres domaines, l histoire bégaie : on assiste aujourd hui à un retour aux sources avec l ajout de coprocesseurs pour accélérer les calculs. En particulier, les processeurs graphiques GPU pour exploiter certaines parties de code, notamment celles à parallélisme régulier. En plus des caractéristiques précédentes et des niveaux supplémentaires de hiérarchies, il faut donc gérer en plus l hétérogénéité des unités de calcul (Bader, 2007). Ainsi, on parle aujourd hui plutôt de supports d exécution et non plus de machines pour souligner la diversité des composants dans les systèmes de calcul : les ressources deviennent totalement virtualisées. Cette idée qui était à la base des grilles se retrouve en particulier dans les nuages (clouds) qui sont des architectures de services. Imaginez dans votre salon ou dans une PME des prises permettant de se connecter à des ressources de calcul extérieures pour effectuer toute sorte de traitements. Cette vision de l informatique est dans la continuité des grilles de calcul, mais les masses immenses de données et l ouverture au marché grand public créent de nouveaux défis scientifiques (Foster et al., 2009) Synthèse : vers une méthodologie générique Cette longue introduction a permis de rappeler la grande diversité des systèmes de calcul parallèle disponibles aujourd hui. Face à cette complexité croissante, l attitude des développeurs d applications a dû s adapter. Ces utilisateurs experts dans leur domaine se concentrent sur le cœur scientifique de leurs métiers plutôt que sur des questions techniques liées à la machine, mais il faut être en mesure de prévoir l évolution de leurs codes, l idée étant de créer des interfaces de programmation de haut niveau qui permettent de les libérer des tâches difficiles (et parfois fastidieuses) de l ordonnancement, de gestion des ressources et autres opérations de bas niveau. On trouve ci-après une liste des principaux caractères communs aux ressources des différents types de plates-formes parallèles actuelles. Selon les cas, certains pa-

5 Les riches heures de l ordonnancement 1025 ramètres sont plus importants que d autres, ils prennent des valeurs extrèmes qui influencent plus ou moins les politiques d ordonnancement : ordre de grandeur du nombre d unités de calcul, caractère distribué, hiérarchisé, hétérogène ou volatile des ressources, opérant sur des données incertaines (mal connues ou sujettes à perturbations), etc. Toutes ces caractéristiques conduisent à un accroissement de la complexité des supports d exécution. Pour y faire face, la recherche s est organisée en couches plus ou moins indépendantes qui nécessitent chacune une expertise toujours plus poussée (Culler, Singh, 1999). Les systèmes actuels sont caractérisés par l existence d une forme ou une autre de parallélisme à chaque niveau (Hwang, 1993). Devenir LE spécialiste du portage d un code numérique sur une machine donnée n a plus beaucoup de sens aujourd hui, on doit se focaliser sur quelques sous-problèmes (allocation de registres, gestion des niveaux de mémoire, optimisation de la bande passante, déploiement du code, etc.) en gardant si possible une vue d ensemble cohérente. On ne peut pas réécrire le code d une application à chaque nouvelle génération de machines! La recherche de pointe en parallélisme se fait dans des équipes où l on trouve des compétences multiples. Les problèmes sont décomposés en couches successives et on dialogue aux interfaces. Ainsi, l ordonnancement est découplé de l algorithmique proprement dite et s appuie sur des mécanismes mis au point dans les intergiciels. Il reste bien sûr nécessaire de s attaquer aussi à des problèmes transversaux qui se retrouvent à chaque niveau (gérer la diversité des utilisateurs, l adaptivité, le passage à l échelle, la gestion des données incertaines, etc.). Quel que soit le niveau, la gestion du parallélisme revient à ordonnancer des tâches, ce qui peut s exprimer comme un problème d optimisation combinatoire, c est-à-dire, d une fonction objectif discrète à optimiser sous contraintes. La méthodologie classique pour l analyse est rappelée ci-dessous : 1. Etude et caractérisation de l environnement modélisation 2. Définition formelle du problème 3. Etude de la complexité (NP-complétude, inapproximation) 4. Conception d algorithme(s) 5. Analyse (bornes au pire des cas, en moyenne) 6. Validation par simulations ou tests en vraie grandeur. Selon la formation scientifique de base et la communauté d appartenance, certaines étapes sont implicites ou tout simplement ignorées... Les algorithmiciens auront tendance à se focaliser sur les étapes 2 à 5 en laissant tomber la validation expérimentale, les chercheurs en Système développeront plutôt les points 4 et 6 (heuristiques souvent astucieuses, mais pas forcément garanties, destinées à tourner dans des conditions réelles). Peu d équipes de recherche au monde peuvent prétendre couvrir l ensemble de ces points.

6 1026 TSI. Volume 31 n o / L ordonnancement dans une perspective historique L évolution des architectures de systèmes parallèles que nous venons de présenter a été étroitement liée aux progrès en algorithmique, au développement de méthodes et d outils pour gérer le parallélisme, d environnements de programmation ou encore de langages permettant d exprimer la concurrence (Blazewicz et al., 2000). Les solutions que l on cherche à concevoir pour gérer les ressources doivent être flexibles, c est-àdire, composées de mécanismes pas trop compliqués pour pouvoir évoluer rapidement tout en restant performants. On distingue deux approches possibles pour cela. On peut soit faire évoluer les mécanismes existants d une génération à la suivante, c est ce qui s est passé pendant longtemps, soit en imaginer de nouveaux mieux adaptés aux besoins des systèmes actuels (et futurs). Reprenons l évolution des supports d exécution sous cet angle. Historiquement, les développeurs de codes numériques se sont appropriés leur vision propre du domaine de l ordonnancement. Les premières recherches en algorithmique parallèle ne faisaient pas appel à l ordonnancement proprement dit. Le vectoriel et le parallélisme sur les supercalculateurs à mémoire partagée du début des années 1980 ont conduit à une algorithmique ad hoc. Comme le monsieur Jourdain du Bourgeois Gentilhomme, les développeurs faisaient de l ordonnancement sans le savoir... Les stratégies de découpage des données et d allocation d opérations se faisaient à la main directement dans le code avec l objectif d équilibrer les calculs. Puis, on a cherché rapidement à rendre cette opération extérieure aux programmes en remplaçant les directives explicites par des mécanismes de plus haut niveau. Formulé de cette manière, cela revenait d une certaine manière à déplacer le problème vers les couches Système. On rejoignait là une des préoccupations importantes d équilibrage de charge. Informellement, le problème de l ordonnancement consiste à optimiser l exécution sur des ressources limitées d un graphe qui représente une application ou des processus. L apparition des architectures à mémoire distribuée où les communications ne sont plus simplement des mouvements internes sur la mémoire (souvent négligeables), mais deviennent un facteur prépondérant dans la performance, a fait évoluer les modèles d ordonnancement (Bampis et al., 1997). Le plus répandu est le modèle délai (voir section 6.1). L idée est d ajouter un délai de communication entre deux tâches allouées sur des unités de calcul différentes. On voit bien ici comment le choix de l allocation influence l ordonnancement. En général, les communications peuvent être recouvertes par du calcul si une tâche est disponible localement. Pendant plus d une décennie, les communications ont ainsi été prises en compte explicitement et l école française a été une des plus actives sur ce thème. Dans le modèle de base introduit par Rayward-Smith, les temps de communication étaient unitaires, mais de nombreuses variantes ont été proposées. En particulier, si les temps de communication sont affines (start-up plus un terme proportionnel au volume de données à transférer), il est amusant ici de remarquer que l on retrouve de façon plus systématique de nombreuses analyses menées quelques années auparavant (Leighton, 1992).

7 Les riches heures de l ordonnancement 1027 On a continué à raffiner le modèle délai pour se rapprocher encore des caractéristiques physiques des architectures parallèles. Un des achèvements les plus aboutis est le modèle LogP (Drozdowski, 2009). L idée est de distinguer les phases élémentaires dans les opérations de communication (empaquetage, transfert sur le réseau, réception) et de considérer une latence constante pour tous les messages jusqu à une certaine taille. Deux communications successives sur le même processeur doivent attendre un certain temps (gap). On retrouve le modèle délai pour les valeurs particulières de surcoût d empaquetage-réception et sans gap. Malheureusement, les analyses sur de quelques structures particulières de graphes ont montré les limites de ce modèle. Les problèmes pour les modèles à communications explicites comme LogP deviennent rapidement trop sophistiqués et donc, pratiquement impossibles à résoudre efficacement. Par exemple, le problème d ordonnancer un simple graphe Fork avec des temps d exécution quelconques sur un nombre non borné de processeurs identiques est déjà NP-difficile! De plus, les meilleurs facteurs d approximation connus sur ces modèles dépendent des paramètres du problème, en particulier, il n existe pas de garantie constante pour des grands temps de communication. Dans ces conditions, déterminer le meilleur ordonnancement devient hasardeux. On peut toujours utiliser les algorithmes de liste dont le principe est détaillé plus loin, mais la qualité du résultat n est pas toujours garantie Modèles alternatifs On vient de voir que la voie qui consiste à raffiner les modèles à communications explicites avait en quelque sorte conduit à une impasse pour l ordonnancement. C est pourquoi on a eu recours à des solutions alternatives que nous allons rapidement présenter et discuter. Un des modèles les plus significatifs est BSP (Bulk Synchronous Programming), apparu à la fin des années Il était destiné à faire un pont entre les architectures et les modèles d exécution. Le principe est d organiser les tâches en étapes de calcul pur (super-steps) séparées par de grosses barrières de synchronisation. Ainsi, le modèle peut être considéré du point de vue théorique comme une PRAM à gros grain (Cosnard, Trystram, 1993). Du côté pratique, les algorithmes écrits en BSP sont faciles à implémenter et conduisent à de bonnes performances pourvu que le découpage en super-steps soit bien adapté. Un autre intérêt de ce modèle est qu il est associé à un modèle de coût relativement simple à évaluer. Actuellement, des articles faisant référence à ce modèle sortent régulièrement. Il pourrait en particulier connaître une renaissance avec la programmation sur les accélérateurs de type GPU. L idée restant la même : contraindre l écriture des programmes pour obtenir une structure plus simple à paralléliser en particulier en regroupant les communications. Notons également que ce modèle est très en vogue actuellement dans la communauté du cloud computing (Malewicz, 2009).

8 1028 TSI. Volume 31 n o /2012 L autre modèle alternatif important est celui des tâches parallèles. Partant du constat que la gestion explicite des communications au niveau fin d un programme rendait le problème vraiment difficile, ce modèle propose de changer de granularité en considérant des tâches plus grosses, elles-mêmes parallélisables, sans se préoccuper des caractéristiques internes trop fines. On distingue deux types de tâches parallèles : les tâches rigides (pour lesquelles le nombre de processeurs alloués est fixé à l avance) et les tâches modelables (lorsque ce nombre est variable) (Feitelson, 2010). La figure 1 présente un exemple d ordonnancement de tâches parallèles rigides indépendantes sur une grappe de processeurs. Pour les tâches modelables, des algorithmes d approximation efficaces ont été développés (Leung, 2004). Figure 1. Exemple d ordonnancement d applications (tâches parallèles rigides). Les niveaux de gris correspondent à différents utilisateurs De nombreuses recherches ont aussi été menées pour des classes d applications particulières. Une des plus importantes est sans doute les tâches divisibles (divisible load ou la variante de bag of tasks). Ceci correspond à des applications constituées d un grand nombre de tâches élémentaires indépendantes. Cette structure particulière permet de simplifier l analyse et de se focaliser sur certains points (comme la topologie de communications). On distingue le comportement transitoire et le régime permanent. On s intéresse alors à de nouveaux objectifs comme la minimisation du throughput qui représente le débit (nombre de tâches effectuées par unités de temps). Des détails peuvent être trouvés dans (Robert, Vivien, 2009). Une discussion plus approfondie portant sur une comparaison des différents modèles est présentée dans (Trystram, 2001). 3. Résultats classiques en ordonnancement 3.1. Préliminaires A l apparition des premiers calculateurs parallèles, les utilisateurs ont développé leurs codes en les optimisant au cas par cas, sans référence explicite au domaine de la recherche opérationnelle. A l époque, on les a parfois accusés de réinventer la roue, ce qui n était pas toujours faux... Avant de présenter le problème central de l ordonnancement, voyons comment sont représentées les applications. On utilise généralement un graphe G = (V, E)

9 Les riches heures de l ordonnancement 1029 dont les sommets V correspondent aux instructions (ou à un grain plus grossier des procédures) et les arêtes E représentent les liens entre ces tâches (associés au volume des données à transférer). Il existe plusieurs variantes : statique lorsque la structure, les opérations et le volume des calculs sont connus a priori (par exemple pour la parallélisation de composants de bibliothèques numériques (Cosnard, Trystram, 1993)) ou graphes à flots de données (data flow) construits dynamiquement où les tâches se découvrent au fur et à mesure du déroulement des calculs. Notations. La plate-forme d exécution cible est composée de m ressources de calcul identiques (que l on appellera processeur pour simplifier). Supposons que l on cherche à paralléliser une application composée de n tâches séquentielles de durées p j pour 1 j n. Les tâches sont liées par une relation de précédence, c est une relation d ordre partiel qui représente les contraintes de chronologies entre les tâches. Si certaines tâches ne sont pas disponibles dès le début, on parle de release dates. On suppose ici que toutes les données sont connues à l avance (off-line). On note p max le temps d exécution de la plus grande tâche. Le problème de l ordonnancement revient à résoudre deux questions : l allocation des tâches aux processeurs et leur séquencement (date d exécution). Plus formellement : DÉFINITION 1. Ordonnancer un système de tâches, c est déterminer les deux applications π et σ où π associe un processeur à chaque tâche et σ leur associe un temps de début d exécution. Parmi tous les ordonnancements possibles, on cherche à déterminer un ordonnancement réalisable (c est-à-dire qui satisfasse les contraintes) ayant le temps d exécution global le plus petit possible. Le makespan, noté C max, est défini comme le maximum des temps de complétion C j (c est-à-dire, le temps où toutes les tâches sont terminées) C max = max j=1,...,n (σ(j) + p j ). La figure 2 illustre ces notions. p j processeur π(j) j r j σ(j) C j d j temps Figure 2. Illustration d un ordonnancement (fonctions π et σ). La tâche j est soumise à la date r j et elle a une date d échéance d j La faisabilité de l ordonnancement est donnée par les contraintes suivantes : σ(j) σ(i) + p i + γ(i, j) pour tous les couples de tâches (i, j) E (telles que i précède j).

10 1030 TSI. Volume 31 n o /2012 Cette expression traduit simplement le fait que la tâche j ne peut commencer son exécution que lorsque i est terminée. Dans le cas de processeurs hétérogènes, le temps d exécution dépend du processeur π(i) sur lequel est allouée la tâche. Les temps de communication peuvent être paramétrés selon le support d exécution sous-jacent. Par exemple, dans la version simple du modèle délai à temps de communication unitaires, on a γ(i, j) = 1 i et j tels que π(i) π(j), dans le modèle LogP, on distingue les surcoûts pour l empaquetage et le désempaquetage des messages plus la latence de traversée du réseau d interconnexion : γ(i, j) = O send +L+O rec. Le modèle général étant le modèle affine β+l i,j τ avec un temps d initialisation (start-up β) et un facteur proportionnel à la taille des messages (où τ est l inverse de la bande passante du lien) Classification des problèmes Le problème central précédent est une base que l on peut décliner selon les problèmes cibles. Une manière commode pour présenter et manipuler les nombreuses variantes est d utiliser la notation dite à trois champs α β γ où chaque champ représente une caractéristique du problème (Lawler et al., 1982), plus précisément, α représente les diverses ressources : on distingue les ressources identiques (α = P ) fixées, arbitraires non fixées ou non bornées, uniformes, hétérogènes ou dédiées ; β contient les hypothèses sur les tâches et les contraintes imposées sur l exécution. On y décrit le type d applications ciblées : on distingue par là la structure (qualitative) et les valeurs des données (quantitatives) ; γ précise les fonctions objectifs. Historiquement, beaucoup de travaux concernent le makespan (maximum des temps de complétion), c est d ailleurs essentiellement ce que nous étudions dans cet article, mais les performances importantes des systèmes actuels ont conduit à diversifier de plus en plus les objectifs étudiés. Ainsi, on étudie aussi la fiabilité que l on cherche à maximiser ou la consommation énergétique que l on cherche à minimiser. Notons que l optimisation simultanée de plusieurs objectifs est un domaine en pleine expansion depuis quelques années. Par exemple, Q tree, p j = 1 Cmax correspond à ordonnancer sur un nombre arbitraire de machines uniformes (champ Q) une application dont la structure des tâches est un arbre (tree) avec des tâches unitaires (p j = 1). Enfin, on vise à minimiser le makespan (Cmax). On pourrait également rajouter des caractéristiques pertinentes comme le contrôle (il est en général centralisé, mais on cherche de plus en plus à concevoir des algorithmes efficaces avec contrôle décentralisé) ou la diversité des utilisateurs (traditionnellement, les utilisateurs sont tous considérés de la même manière, ce qui se reflête dans la fonction objectif et l on cherche plutôt à optimiser le comportement global du système que celui de chaque utilisateur. Cette dimension nouvelle est de plus en plus considérée dans les travaux récents).

11 Les riches heures de l ordonnancement Cas particulier des tâches indépendantes Afin d illustrer la méthode de résolution, considérons le problème central le plus simple possible qui consiste à ordonnancer n tâches indépendantes sur un nombre arbitraire de processeurs identiques en minimisant le makespan C max. En utilisant la notation à trois champs précédente, il est noté P Cmax Complexité Il est facile de remarquer que ce problème est NP-difficile au sens faible pour 2 machines (il est en effet équivalent à une 2-Partition de l ensemble des entiers qui sont les temps d exécution des tâches). On peut aller un peu plus loin en montrant qu il est NP-difficile au sens fort pour un nombre arbitraire de processeurs. Ce problème peut se réduire à partir du problème 3-Partition qui est rappelé ci-dessous (Garey, Johnson, 1979) : Instance. Un entier B et un ensemble fini de 3n entiers tels que i B 4 < i < B 2 Question. Existe-t-il une partition en n sous-ensembles S j de 3 entiers telle que j i S j i = B? La contrainte de taille sur les indices i impose qu il y a exactement trois entiers par ensemble S j. La réduction consiste à fixer le nombre de processeurs m = n et considérer 3n tâches indépendantes, chaque entier correspondant au temps d exécution d une tâche à ordonnancer. L ordonnancement optimal a un makespan égal à B où chaque processeur exécute 3 tâches de chaque sous-ensemble. De plus, comme nous le verrons à la section 5.1 en présence de contraintes de précédence, le problème est NP-difficile au sens fort à partir de 2 machines. Comme le problème est difficile, on ne peut attendre de solutions exactes pour des instances trop grandes. On cherche alors à concevoir des algorithmes efficaces, en particulier ceux dont on peut borner le rapport à l optimal dans le pire des cas. Pour cela, on introduit la mesure suivante (Hochbaum, 1995). DÉFINITION 2. Le rapport d approximation d un algorithme A pour un problème de minimisation est défini de la façon suivante : ρ A = inf{r 1 tel que ρ A (I) r} pour toutes les instances I du problème où le terme ρ A (I) est le rapport de la valeur de l objectif de A à l optimal pour l instance I : ρ A (I) = ω A(I) ω (I) Comme le problème P Cmax est difficile, la plupart des variantes plus sophistiquées seront aussi NP-difficiles (avec précédences, avec communications, pour des processeurs non identiques, pour des tâches parallèles, etc.). Pour un nombre constant de processeurs, le problème admet un schéma d approximation polynômial (PTAS) c est-à-dire un rapport d approximation 1 + ɛ dont la complexité est polynomiale en

12 1032 TSI. Volume 31 n o / ɛ. Notre objectif est de concevoir des algorithmes de faible coût en gardant un bon rapport d approximation. En particulier, il existe une recette générale que nous allons développer dans la suite et analyser dans différents contextes : les ordonnancements de liste (Leung, 2004 ; Sinnen, 2007) Algorithmes de liste Dans cette section, nous détaillons le principe et l analyse de ce schéma algorithmique général, puis nous montrons comment le généraliser sous différentes hypothèses plus générales. Principe. L algorithme de liste de Graham dans sa forme originale date de 1969, il est basé sur une liste des tâches prêtes. On pioche dans cette liste tant qu il y a des ressources (processeurs) libres. Cet algorithme n est pas optimal, mais il possède une garantie dans le pire des cas (facteur d approximation constant égal à 2). La preuve est simple, mais elle mérite que l on s y arrête car la plupart des extensions suivent le même schéma. PROPOSITION 3. L algorithme de liste est une 2-approximation. Preuve. La preuve est basée sur un argument géométrique sur le diagramme de Gantt (ressources-temps) qui est schématisé dans la figure 3. On exprime que la surface du rectangle global est égale à la surface des tâches plus celle des temps d inactivité, soit m.c max = W + S idle (où W = Σ j=1,n p j ) et S idle est la surface cumulée de tous les moments d inactivité (en gris sur la figure 3). p max m k C max Figure 3. Ordonnancement de liste pour des tâches indépendantes Il existe deux bornes inférieures triviales de la durée d un ordonnancement : Cmax W m et C max p max

13 Les riches heures de l ordonnancement 1033 Le premier terme de la somme C max = W m + S idle m correspond exactement à la borne inférieure sur le travail W. Borner le second terme n est pas difficile, il suffit de remarquer que suivant le principe de liste, les moments d inactivité se trouvent tous regroupés à la fin. Considérons une des tâches qui se termine en dernier (la tâche k sur la figure 3). Dans le pire des cas, seul le processeur qui exécute k est actif, ainsi S idle (m 1)p k (m 1)p max. Compte tenu que p max est une borne inférieure de l optimum, on obtient finalement : C max (1 + m 1 m )C max 2Cmax. Remarquons que dans le pire des cas, les deux bornes s équilibrent et se cumulent, d où le facteur 2. De plus, la borne de 2 est atteinte pour cet algorithme. Plus généralement, remarquons que l algorithme de liste est générique et simple à mettre en œuvre. Dans le cas de tâches indépendantes, le principe de liste garantit que les temps d inactivité sont regroupés à la fin. Ceci permet d améliorer la borne d approximation de 2 si l on place à la fin les petites tâches. C est l idée derrière la politique LPT (Largest Processing Time) qui trie les tâches par temps d exécution décroissants avant de les ordonnancer par l algorithme de liste (Leung, 2004). Sans perte de généralité, on renumérote les tâches dans cet ordre, p n désigne la plus petite tâche. On peut alors démontrer le résultat suivant. PROPOSITION 4. LPT est une 4 3 -approximation. Preuve. L analyse de ce résultat vient de ce que l algorithme est optimal pour un petit nombre de tâches. On considère la tâche qui termine en dernier que l on note k comme précédemment et on élimine les tâches d indices supérieurs (ici, 10 et 11 sur la figure 4 de gauche). On considère alors deux cas : C max < 3p k. Ici, chaque processeur a au plus 2 tâches à exécuter dans l instance réduite. Il n est alors pas difficile de montrer que la solution est optimale. C max 3p k. Comme dans la précédente preuve, on décompose l ordonnancement en deux phases (pleine activité suivie d une zone avec des temps d inactivité). Dans le pire des cas, l inactivité est majorée par (m 1)p k. La surface totale du diagramme de Gantt est m.c max = W + S idle. Ainsi, C max = W m + S idle m C max + (m 1)p k m. Comme p k C max 3, on obtient en reportant dans l expression précédente : C max C max + (m 1)C max 3m ( m )C max A partir de la situation simple que l on vient de décrire, on peut faire le bilan suivant sur l algorithme de liste :

14 1034 TSI. Volume 31 n o / π(k) k Figure 4. Adaptation de la preuve de l algorithme de liste général à LPT t C max il est peu coûteux (outre un tri initial si l on considère des priorités, l algorithme est linéaire en nombre de tâches) ; il est asymptotiquement optimal pour un grand nombre de tâches, car p max devient alors arbitrairement petit au regard du makespan ; enfin, il fonctionne indifféremment pour une gestion de la liste statique (offline) ou dynamique (on-line). Dans ce dernier cas, la garantie de LPT pour des tâches indépendantes passe à 3 2 avec une borne inférieure en (i.e. aucun algorithme en-ligne ne peut avoir une meilleure borne) (Chen, Vestjens, 1997). Le rapport est un peu plus mauvais que LPT, mais reste acceptable. Ici aussi, la borne est atteinte pour une famille particulière d instances Schémas d approximation polynômiaux Pour un nombre constant de processeurs, le problème P m Cmax admet un PTAS (schéma d approximation polynômial en 1 ɛ où ɛ est une valeur fixée). Plus précisément, (Hochbaum, Shmoys, 1988) proposent une famille d algorithmes d approximation A ɛ qui réalisent chacun une approximation en (1 + ɛ) en temps appartenant à O( n 1 ɛ ɛ 2 ). Cet algorithme est très coûteux lorsque l on cherche des valeurs d approximation proches de 1. Par exemple, si l on cible comme pour LPT une 4 3 -approximation (correspondant à ɛ = 1 3 ), le PTAS est en O(n9 )! Nous allons développer rapidement dans cette section un autre PTAS avec un rapport d approximation aussi près que possible de l optimal. Ce résultat est classique, il est coûteux, mais aussi plus simple à comprendre à partir de l analyse que nous avons faite pour LPT. L idée de base pour construire le PTAS consiste à essayer systématiquement toutes les positions possibles des q plus grandes tâches. Soit ɛ un réel positif, la valeur de l entier q sera fixée plus tard en fonction de ɛ et du nombre de processeurs m. On suppose que les tâches sont triées par temps d exécution décroissants. Le PTAS consiste en deux phases successives : on génère tout d abord en brute force toutes les partitions possibles des q premières tâches en m

15 Les riches heures de l ordonnancement 1035 parties (ce qui coûte de l ordre de mq m!. C est polynômial si q est fixé), puis on complète l ordonnancement obtenu en appliquant LPT sur les n q tâches restantes. On se place dans le cas où la valeur du makespan du PTAS est strictement supérieure à celle du makespan de la première phase (sinon, le PTAS est tout simplement optimal). Comme pour les analyses précédentes, on considère la dernière tâche à être exécutée (notée k), on a alors l expression suivante : C max C max + (1 1 m p k) En considérant la charge des processeurs (nombre de tâches allouées) après la première phase, on peut montrer : p k (1 + q m )C max En reportant dans la majoration de C max, on obtient : C max ( m 1+ q m )C max On choisissant q = 1 ɛ ɛ m, on obtient un rapport d approximation en 1 + ɛ. 5. Graphes avec précédences 5.1. Complexité Le cas des tâches indépendantes que nous venons d exposer correspond soit à des grosses applications, soit à un cas particulier pas toujours réaliste. A grain fin, la plupart des codes parallèles ont des instructions dont l exécution dépend de résultats d autres instructions. Comme évoqué précédemment, la complexité du problème est NP-difficile au sens fort dans le cas de tâches avec précédences. La preuve mérite que l on s y arrête. PROPOSITION 5. P prec Cmax est NP-difficile au sens fort. Preuve. Remarquons tout d abord que le problème appartient évidemment à N P. Nous allons le réduire à partir du problème 3-Partition (introduit à la section 4.1) pour m = 2. Pour cela, considérons le graphe de précédence particulier décrit à la figure 5 composé d une succession de n 1 diamants et de 3n tâches indépendantes de durées p i. Ces dernières tâches correspondent à l instance de 3-Partition cherchée. Les n tâches de jonctions des diamants ont une durée égale à B, les autres tâches parallèles deux à deux sont de durées unitaires. Pour ordonnancer optimalement l ensemble des tâches, il n y a pas d autre solution que d exécuter les blocs de diamants au plus tôt, comme le montre la figure 6. On peut montrer une borne d inapproximation en 4 3, sauf si P = N P.

16 1036 TSI. Volume 31 n o /2012 (n 1) B B B... B B Figure 5. Graphe de base pour la réduction proc.1 proc B 1 B 1 1 B B Figure 6. Gantt final d un algorithme optimal. Les tâches grisées correspondent à la 3-Partition B 5.2. Résolution par algorithme de liste Le principe de l algorithme de liste reste valide et efficace pour ordonnancer des tâches avec précédences. Plutôt que de disposer de la liste de toutes les tâches au début, la liste sera mise à jour au fur et à mesure. Le facteur d approximation de cet algorithme reste le même que précédemment, mais la preuve est un peu plus délicate. PROPOSITION 6. L algorithme de liste est une 2-approximation pour P prec Cmax. Preuve. Comme pour le cas des tâches indépendantes, l idée repose sur un argument géométrique sur la surface du diagramme de Gantt m.c max = W +S idle. Cependant, la preuve est plus difficile car les relations de précédence peuvent induire des temps d inactivité n importe où et pas seulement à la fin. On dispose de deux bornes inférieures : W m C max et le chemin critique, c està-dire, la plus longue chaîne du graphe (notée t ). Sur l exemple du graphe de la figure 8, la chaîne de tâches (4)-(5)-(8)-(10) constitue un des chemins critiques. La principale difficulté ici est de borner le second terme de cette somme (et donc, S idle ). Pour cela, on considère une des tâches qui se termine en dernier (par exemple la tâche (10) sur l exemple de la figure 9) et on construit à rebours une chaîne de tâches sur chaque intervalle où il existe un temps d inactivité, comme indiqué dans la figure 7. La dernière tâche est forcément successeur d une tâche en cours d exécution dans l intervalle précédent où il y a un temps d inactivité, sinon, d après le principe de liste,

17 Les riches heures de l ordonnancement 1037 Figure 7. Principe de construction d une chaîne sur les périodes d inactivité elle aurait été exécutée à ce moment-là. Ainsi, en considérant qu il y a au plus (m 1) processeurs inactifs, on obtient S idle (m 1).L où L est la longueur de la chaîne que l on vient de construire. Bien sûr, cette longueur est inférieure au chemin critique t (qui est la plus longue des chaînes) qui est une borne inférieure du makespan optimal. Au final, on obtient : C max W m + m 1 m (2) (3) (4) (1) (5) (8) t Cmax+ m 1 m C max (2 1 m )C max Figure 8. Exemple de graphe de précédence. (3) et (8) sont de durées unitaires, (1), (5), (6) et (10) de durées 2 et (2), (4), (7) et (9) de durées 3 (6) (7) (9) (10) (1) (2) (5) (8) (10) (6) (9) (3) (4) (7) Figure 9. Ordonnancement de liste du graphe de la figure Pour aller un peu plus loin... L algorithme de liste est simple, rapide et possède une garantie de performance. Le principe reste valable pour d autres objectifs standard comme la somme des C i (ici, la meilleure priorité de liste est d ordonnancer les tâches par temps d exécution croissants, c est-à-dire l inverse de LPT) ou les retards dans le cas d ordonnancements avec dates d échéances (Leung, 2004). La limite de ces algorithmes vient de leur caractère glouton, où une fois qu une décision est prise, elle ne sera jamais remise en cause dans la suite.

18 1038 TSI. Volume 31 n o /2012 On peut contrer cela en considérant des algorithmes simples par approximation duale (Hochbaum, 1995). L idée ici est de fixer une borne pour le makespan (un guess noté λ) que l on ajustera par dichotomie. En effet, si la valeur de l optimal est connue, on peut utiliser des algorithmes de bin packing qui possèdent de bonnes bornes d approximation (par exemple FFD First Fit Decreasing) (Coffman et al., 1978). Ici, on cherche le nombre minimum de boîtes (bins) pour placer n objets. Rappelons que l algorithme FFD approxime asymptotiquement la solution optimale à un facteur 11 9 = Plus précisément, N 11 9 N + 4 où N est le nombre de boîtes. On voit clairement une relation entre la valeur du makespan du problème d ordonnancement de n tâches indépendantes et le nombre de boîtes (nombre de processeurs m). Considérons la borne inférieure naturelle du problème : LB = max( W m, p max) et fixons une borne supérieure UB = max(2 W m, p max) où W = Σ 1 j n p j. On peut construire une heuristique garantie (appelée multifit) en appliquant itérativement FFD par dichotomie sur les bornes LB et UB, la valeur de λ correspond au milieu de l intervalle [LB, U B]. Si FFD nécessite plus de m processeurs, la solution n est pas réalisable, et on relance alors FFD sur un intervalle restreint à [ UB LB 2, UB]. Sinon, on peut améliorer la valeur de λ en relançant FFD sur [LB, UB LB 2 ]. On peut alors montrer la borne finale obtenue après k itérations : C max (k) ( k )C max Cet algorithme n est plus un glouton, il possède une meilleure borne asymptotique que LPT, mais il est aussi un peu plus coûteux (il nécessite k appels à FFD). 6. Extensions Le principe des algorithmes de liste peut être étendu à de nombreuses autres situations que celles que nous avons présentées (processeurs identiques et tâches indépendantes ou avec précédences). De plus, dans la plupart des cas il est possible de prouver des garanties sur les facteurs d approximation. Même dans les cas où ces facteurs sont importants (voire non bornés), le comportement est en général très bon en moyenne Précédences et communications explicites Dans le cas de tâches avec précédences et avec communications, le facteur d approximation dépend des communications. La figure 10 illustre schématiquement pourquoi (un délai est introduit entre les tâches (4) et (5) et entre (5) et (9)). Du point de vue géométrique à partir du diagramme de Gantt, la surface des temps d inactivité S idle est constituée de deux types de slots : les temps d inactivité structurels dus aux précédences (comme précédemment, en gris sur la figure) et ceux induits par l attente de communications (en noir sur la figure). L analyse de l algorithme de liste est la même que dans le cas sans communication : on construit de proche en

19 Les riches heures de l ordonnancement 1039 (1) (5) (8) (10) (2) (6) (9) (3) (4) (7) Figure 10. Ordonnancement de liste pour des tâches avec précédences et délais de communication (en noir) proche une chaîne de tâches à partir de la dernière tâche le long des périodes d inactivité. Comme le temps d attente peut provenir des communications, il nous faut rajouter un terme supplémentaire. On obtient dans le pire des scénarios la majoration suivante : C max W m + m 1 m.t + γ. où γ est le maximum des sommes des temps de communications sur une chaîne du graphe. Pour les petits temps de communication (c est-à-dire si (i, j) γ(i, j) min(p j )), on peut borner le dernier terme par un facteur constant de C max. Par contre, pour des grands temps de communication, ce terme n est pas borné (le meilleur facteur connu est en log de la plus grande communication). En complément à ces analyses algorithmiques, plusieurs implémentations pratiques ont été proposées. Une des plus utilisées est sans doute l algorithme de liste ETF (Earliest Task First) dont le principe consiste à chercher la meilleure date d exécution possible parmi les tâches prêtes : q (processeur) max j (σ(j) + p j + γ(i, j)) pour (i, j) E et π(j) q. Le temps de cet algorithme est en O(m.n 2 ) Processeurs non identiques Considérons maintenant le cas d une machine parallèle dont les processeurs sont hétérogènes. On distingue deux configurations selon que les processeurs ont des vitesses différentes uniformes ou sans liens unrelated (une opération peut prendre plus ou moins de temps sur tel ou tel processeur). Les deux problèmes correspondants sont connus dans la littérature respectivement comme Q Cmax et R Cmax. Bien sûr, en tant que généralisation de P Cmax, ces problèmes sont au moins aussi difficiles. Nous présentons rapidement les principaux résultats dans l esprit du reste de l article. Sur processeurs uniformes, une tâche j aura un temps d exécution qui dépend p du processeur où elle est allouée : j v où v π(j) i est la vitesse du processeur i. Pour m fixé, il existe un PTAS basé une sur technique d approximation duale (obtenu à partir du problème de bin packing avec des boîtes de tailles variables) (Hochbaum, Shmoys, 1988). On peut généraliser l algorithme de liste LPT. L analyse de la performance est plus technique, elle conclut à un rapport d approximation compris entre 1.52 et 5 3 (Friesen, 1987). Pour des tâches avec précédence, on perd la garantie de performance (facteur

20 1040 TSI. Volume 31 n o /2012 d approximation constant). Ce cas est plus difficile que pour des processeurs identiques car il faut redéfinir la notion de chemin critique (ici, elle dépend de l allocation). Une solution possible est de considérer une vitesse moyenne. Nous invitons le lecteur intéressé à consulter l article de (Chekuri, Bender, 2001). L idée est de décomposer le graphe en chaînes de longueurs décroissantes et d allouer les plus grandes aux processeurs les plus rapides. Pour des processeurs hétérogènes quelconques, on peut montrer que le problème n est pas approximable à moins d un rapport 3 2 (sauf si P = N P) (Lenstra et al., 1990). Par contre, il existe un PTAS coûteux pour m fixé, basé sur une technique d arrondi d une formulation en programme linéaire en nombres entiers. Pratiquement, il existe une heuristique sans garantie pour le cas de tâches avec précédences (Topcuoglu et al., 1999). HEFT (Heterogeneous Earliest Finish Time) procède en deux phases : calcul de priorités sur les tâches en fonction de leurs profondeurs dans le graphe, puis sélection des processeurs sur lesquels la date de terminaison est la plus petite. HEFT n est pas un algorithme de liste au sens où certaines ressources de calcul peuvent rester inactives bien qu une tâche soit disponible. Pour terminer cette section, arrêtons-nous un moment sur le problème d ordonnancement sur des plates-formes parallèles mixtes (multicœurs avec accélérateurs type GPU). Il existe beaucoup de résultats récents qui étudient des implémentations pour des applications particulières et conduisent parfois à de bonnes bornes théoriques. L ordonnancement n est pas toujours explicite. L enjeu est de proposer des ordonnancements efficaces qui prennent en entrée des structures quelconques de tâches. Le modèle de machines consiste en deux familles de processeurs identiques (m processeurs classiques et k GPU). C est un cas particulier du problème R prec Cmax pour lequel on pourrait attendre des bornes plus fines Tâches parallèles (communications implicites) Le principe de liste s applique également bien aux tâches parallèles, c est-à-dire aux tâches nécessitant plusieurs processeurs. Comme nous l avons évoqué à la section 2.4, il existe plusieurs types de tâches parallèles selon la façon dont est déterminé le nombre de processeurs. Si ce nombre est fixé à l avance (comme par exemple dans une application écrite en MPI), les tâches sont rigides. Il peut alternativement être déterminé par l algorithme d ordonnancement, on parle alors de tâches modelables. Si de plus, ce nombre peut évoluer au cours de l exécution, la tâche est dite malléable. Nous allons passer en revue les principaux résultats d approximabilité sous ces différentes hypothèses Tâches parallèles rigides En utilisant la notation à trois champs, ce problème se note P p j, size j Cmax. Le nombre de processeurs nécessaires à l exécution de la tâche j est noté q j. Il faut rajouter une contrainte supplémentaire par rapport au cas standard des tâches séquen-

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

Introduction à la programmation en variables entières Cours 3

Introduction à la programmation en variables entières Cours 3 Introduction à la programmation en variables entières Cours 3 F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 272 Sommaire Notion d heuristique Les algorithmes gloutons

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce Heuristique et métaheuristique IFT1575 Modèles de recherche opérationnelle (RO) 8. Optimisation combinatoire et métaheuristiques Un algorithme heuristique permet d identifier au moins une solution réalisable

Plus en détail

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous

StatEnAction 2009/10/30 11:26 page 111 #127 CHAPITRE 10. Machines à sous StatEnAction 2009/0/30 :26 page #27 CHAPITRE 0 Machines à sous Résumé. On étudie un problème lié aux jeux de hasard. Il concerne les machines à sous et est appelé problème de prédiction de bandits à deux

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

Architecture des calculateurs

Architecture des calculateurs Chapitre 1 Architecture des calculateurs 1.1 Introduction Ce paragraphe n a pas la prétention de présenter un cours d informatique. D une manière générale, seuls les caractéristiques architecturales qui

Plus en détail

Support du cours de Probabilités IUT d Orléans, Département d informatique

Support du cours de Probabilités IUT d Orléans, Département d informatique Support du cours de Probabilités IUT d Orléans, Département d informatique Pierre Andreoletti IUT d Orléans Laboratoire MAPMO (Bât. de Mathématiques UFR Sciences) - Bureau 126 email: pierre.andreoletti@univ-orleans.fr

Plus en détail

Introduction aux systèmes d exploitation

Introduction aux systèmes d exploitation Introduction aux systèmes d exploitation Le système d exploitation est un ensemble de logiciels qui pilotent la partie matérielle d un ordinateur. Les principales ressources gérées par un système d exploitation

Plus en détail

Annexe 6. Notions d ordonnancement.

Annexe 6. Notions d ordonnancement. Annexe 6. Notions d ordonnancement. APP3 Optimisation Combinatoire: problèmes sur-contraints et ordonnancement. Mines-Nantes, option GIPAD, 2011-2012. Sophie.Demassey@mines-nantes.fr Résumé Ce document

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

Application irrégulière et ordonnancement en ligne

Application irrégulière et ordonnancement en ligne Application irrégulière et ordonnancement en ligne J. Briat T. Gautier J.L. Roch LMC-IMAG Institut Fourier, BP 53X 100, rue des Mathématiques 38041 Grenoble Cedex 9 Tél. : +33 (0)4 76 51 46 53 Fax : +33

Plus en détail

Exercices théoriques

Exercices théoriques École normale supérieure 2008-2009 Département d informatique Algorithmique et Programmation TD n 9 : Programmation Linéaire Avec Solutions Exercices théoriques Rappel : Dual d un programme linéaire cf.

Plus en détail

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Leçon 11 PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES Dans cette leçon, nous retrouvons le problème d ordonnancement déjà vu mais en ajoutant la prise en compte de contraintes portant sur les ressources.

Plus en détail

Parallel Tree-based Exact Algorithms using Heterogeneous Many and Multi-core Computing for Solving Challenging Problems in Combinatorial Optimization

Parallel Tree-based Exact Algorithms using Heterogeneous Many and Multi-core Computing for Solving Challenging Problems in Combinatorial Optimization Parallel Tree-based Exact Algorithms using Heterogeneous Many and Multi-core Computing for Solving Challenging Problems in Combinatorial Optimization Rudi Leroy Encadrement : N. Melab (Univ. Lille 1),

Plus en détail

Chapitre 2 : Représentation des nombres en machine

Chapitre 2 : Représentation des nombres en machine Chapitre 2 : Représentation des nombres en machine Introduction La mémoire des ordinateurs est constituée d une multitude de petits circuits électroniques qui ne peuvent être que dans deux états : sous

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

Communications performantes par passage de message entre machines virtuelles co-hébergées

Communications performantes par passage de message entre machines virtuelles co-hébergées Communications performantes par passage de message entre machines virtuelles co-hébergées François Diakhaté1,2 1 CEA/DAM Île de France 2 INRIA Bordeaux Sud Ouest, équipe RUNTIME Renpar 2009 1 Plan Introduction

Plus en détail

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Gestion dynamique des tâches dans les grappes

Gestion dynamique des tâches dans les grappes Gestion dynamique des tâches dans les grappes une approche à base de machines virtuelles Fabien Hermenier Équipe ASCOLA, École des Mines de Nantes 26 novembre 2009 Fabien Hermenier (ASCOLA) Gestion dynamique

Plus en détail

Préparation à l agrégation 2012/2013. Mots clés : Graphes. Vecteur propre ; matrices stochastiques ; matrices à coefficients positifs.

Préparation à l agrégation 2012/2013. Mots clés : Graphes. Vecteur propre ; matrices stochastiques ; matrices à coefficients positifs. Mots clés : Graphes. Vecteur propre ; matrices stochastiques ; matrices à coefficients positifs. Le jury n exige pas une compréhension exhaustive du texte. Vous êtes laissé(e) libre d organiser votre discussion

Plus en détail

Points fixes de fonctions à domaine fini

Points fixes de fonctions à domaine fini ÉCOLE POLYTECHNIQUE ÉCOLE NORMALE SUPÉRIEURE DE CACHAN ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION 2013 FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE

Plus en détail

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez Projet informatique «Voyageur de commerce» Résolution

Plus en détail

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI

Chapitre 6. Modélisation en P.L.I. 6.1 Lien entre PL et PLI. 6.1.1 Approximation de la PLI Chapitre 6 Modélisation en P.L.I. 6.1 Lien entre PL et PLI (P) problème de PL. On restreint les variables à être entières : on a un problème de PLI (ILP en anglais). On restreint certaines variables à

Plus en détail

Chapitre IV : La gestion du processeur Mécanismes d ordonnancement

Chapitre IV : La gestion du processeur Mécanismes d ordonnancement Chapitre IV : La gestion du processeur Mécanismes d ordonnancement Eric.Leclercq@u-bourgogne.fr Département IEM http://ufrsciencestech.u-bourgogne.fr http://ludique.u-bourgogne.fr/~leclercq 1 er mars 2007

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

Chapitre 2 Le problème de l unicité des solutions

Chapitre 2 Le problème de l unicité des solutions Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)

Plus en détail

L enseignement de l algorithmique au Lycée

L enseignement de l algorithmique au Lycée L enseignement de l algorithmique au Lycée Sisteron 12 novembre 2009 Fernand Didier didier@irem.univ-mrs.fr Approche naïve C est une méthode, une façon systématique de procéder, pour faire quelque chose

Plus en détail

Construction distribuée de groupes pour le calcul à grande échelle. O. Beaumont, N. Bonichon, P. Duchon, L. Eyraud-Dubois, H.

Construction distribuée de groupes pour le calcul à grande échelle. O. Beaumont, N. Bonichon, P. Duchon, L. Eyraud-Dubois, H. Construction distribuée de groupes pour le calcul à grande échelle O. Beaumont, N. Bonichon, P. Duchon, L. Eyraud-Dubois, H. Larchevêque O. Beaumont, N. Bonichon, P. Duchon, L. Construction Eyraud-Dubois,

Plus en détail

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R

Architecture des ordinateurs. Optimisation : pipeline. Pipeline (I) Pipeline (II) Exemple simplifié : Instructions de type R Architecture des ordinateurs Licence Informatique - Université de Provence Jean-Marc Talbot Optimisation : pipeline jtalbot@cmi.univ-mrs.fr L3 Informatique - Université de Provence () Architecture des

Plus en détail

Cours Systèmes d exploitation 1

Cours Systèmes d exploitation 1 Cours Systèmes d exploitation 1 Achraf Othman Support du cours : www.achrafothman.net 1 Plan du cours Chapitre 1 : Gestion des processus Chapitre 2 : Ordonnancement des processus Chapitre 3 : La communication

Plus en détail

Les modèles technologiques de la localisation

Les modèles technologiques de la localisation Les modèles technologiques de la localisation Les modèles technologiques de la localisation Cécile Martin Université Rennes 2 Avant d entrer en détails dans les modèles technologiques de la localisation,

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 11 : Arbre couvrant Prétraitement Benjamin Wack 2015-2016 1 / 32 La dernière fois Rappels sur les graphes Problèmes classiques Algorithmes d optimisation

Plus en détail

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1

PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 PRINCIPES et METHODES de SPECIFICATION et de CONCEPTION GLOBALE des SYSTEMES INFORMATISES 10/20/02 1 CYCLE de VIE des SYSTEMES INFORMATISES Expression du besoin Développement du «système» Exploitation

Plus en détail

Résumé du chapitre 8 Ressources et interblocage

Résumé du chapitre 8 Ressources et interblocage Résumé du chapitre 8 Ressources et interblocage Jacques Mossière 12 août 2004 1 Introduction Ce chapitre est consacré à l étude d un problème classique dans les systèmes, l interblocage, c est à dire l

Plus en détail

Gé nié Logiciél Livré Blanc

Gé nié Logiciél Livré Blanc Gé nié Logiciél Livré Blanc Version 0.2 26 Octobre 2011 Xavier Blanc Xavier.Blanc@labri.fr Partie I : Les Bases Sans donner des définitions trop rigoureuses, il faut bien commencer ce livre par énoncer

Plus en détail

Cours 1: Introduction à l algorithmique

Cours 1: Introduction à l algorithmique 1 Cours 1: Introduction à l algorithmique Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique 2 Aujourd hui Calcul de x n Maximum Complexité d un problème Problème

Plus en détail

Partie I : Automates et langages

Partie I : Automates et langages 2 Les calculatrices sont interdites. N.B. : Le candidat attachera la plus grande importance à la clarté, à la précision et à la concision de la rédaction. Si un candidat est amené à repérer ce qui peut

Plus en détail

Activité 1 : échantillonnage

Activité 1 : échantillonnage Activité échantillonnage, intervalle de fluctuation, prise de décision (à partir d un même thème) Les trois activités qui suivent s inspirent du document «ressources pour la classe de première générale

Plus en détail

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Les Clusters Les Mainframes Les Terminal Services Server La virtualisation De point de vue naturelle, c est le fait de regrouper

Plus en détail

Langage C et aléa, séance 4

Langage C et aléa, séance 4 Langage C et aléa, séance 4 École des Mines de Nancy, séminaire d option Ingénierie Mathématique Frédéric Sur http://www.loria.fr/ sur/enseignement/courscalea/ 1 La bibliothèque GMP Nous allons utiliser

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Technologie et biologie (TB) Discipline : Informatique Première et seconde années Programme d informatique

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

CRÉER UN COURS EN LIGNE

CRÉER UN COURS EN LIGNE Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Shadow Manager Simulateur de gestion globale d entreprise. Introduction

Shadow Manager Simulateur de gestion globale d entreprise. Introduction Shadow Manager Simulateur de gestion globale d entreprise Introduction Le logiciel de simulation d entreprise Shadow Manager représente le nec plus ultra des outils pédagogiques de simulation de gestion

Plus en détail

IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE»

IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE» IA54 Compte-rendu «STATIONNEMENT AUTOMATIQUE DE VEHICULE» Henri Payno - Cyril Bailly 1/12/2011 SOMMAIRE 1. Introduction... 3 2. Contraintes... 3 3. Architecture globale... 4 4. Interface... 5 A. Scène

Plus en détail

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre

Recherche opérationnelle. Programmation linéaire et recherche opérationnelle. Programmation linéaire. Des problèmes de RO que vous savez résoudre Recherche opérationnelle Programmation linéaire et recherche opérationnelle Ioan Todinca Ioan.Todinca@univ-orleans.fr tél. 0 38 41 7 93 bureau : en bas à gauche Tentative de définition Ensemble de méthodes

Plus en détail

Rapport d activité. Mathieu Souchaud Juin 2007

Rapport d activité. Mathieu Souchaud Juin 2007 Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix

Plus en détail

Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi

Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi Ordonnancement avec exclusion mutuelle par un graphe d intervalles ou d une classe apparentée : complexité et algorithmes ~ Frédéric Gardi - 14 Juin 2005 - - Faculté des Sciences de Luminy - 1. Introduction

Plus en détail

Fonctions de plusieurs variables

Fonctions de plusieurs variables Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme

Plus en détail

Tension d alimentation : V CC. i C R C R B

Tension d alimentation : V CC. i C R C R B Chapitre 4 Polarisation du transistor bipolaire à jonction 4.1 Le problème de la polarisation 4.1.1 Introduction Dans le chapitre 3, nous avons analysé un premier exemple de circuit d amplification de

Plus en détail

10 Prototypage rapide de logiciel pour les systèmes avioniques

10 Prototypage rapide de logiciel pour les systèmes avioniques Introduction Le contexte aéronautique 1 a depuis plusieurs années mis en évidence le besoin croissant de technologies de sécurité permettant d éviter des utilisations malveillantes des matériels ou services

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme? Exercices Alternatifs Quelqu un aurait-il vu passer un polynôme? c 2004 Frédéric Le Roux, François Béguin (copyleft LDL : Licence pour Documents Libres). Sources et figures: polynome-lagrange/. Version

Plus en détail

IRL : Simulation distribuée pour les systèmes embarqués

IRL : Simulation distribuée pour les systèmes embarqués IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation

Plus en détail

Automatisation des copies de systèmes SAP

Automatisation des copies de systèmes SAP Pour plus d informations sur les produits UC4 Software, visitez http://www.liftoff-consulting.com/ Automatisation des copies de systèmes SAP Introduction Le thème de la copie des systèmes SAP est une source

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7

Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques. Elec 2311 : S7 Les méthodes d optimisation appliquées à la conception de convertisseurs électromécaniques Elec 2311 : S7 1 Plan du cours Qu est-ce l optimisation? Comment l optimisation s intègre dans la conception?

Plus en détail

Système Expert pour Smartphones

Système Expert pour Smartphones INSA Rennes Département INFORMATIQUE Système Expert pour Smartphones Rapport de bilan de Planification Olivier Corridor;Romain Boillon;Quentin Decré;Vincent Le Biannic;Germain Lemasson;Nicolas Renaud;Fanny

Plus en détail

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION

LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION LA PROGRAMMATION LINEAIRE : UN OUTIL DE MODELISATION Dans les leçons précédentes, nous avons modélisé des problèmes en utilisant des graphes. Nous abordons dans cette leçon un autre type de modélisation.

Plus en détail

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Evaluation des performances de programmes parallèles haut niveau à base de squelettes Evaluation des performances de programmes parallèles haut niveau à base de squelettes Enhancing the Performance Predictability of Grid Applications with Patterns and Process Algebras A. Benoit, M. Cole,

Plus en détail

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS

Problème combinatoire sur le réseau de transport de gaz. Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Problème combinatoire sur le réseau de transport de gaz Nicolas Derhy, Aurélie Le Maitre, Nga Thanh CRIGEN Manuel Ruiz, Sylvain Mouret ARTELYS Au programme Présentation du problème Un problème d optimisation

Plus en détail

Description et illustration du processus unifié

Description et illustration du processus unifié USDP Description et illustration du processus unifié Définit un enchaînement d activités Est réalisé par un ensemble de travailleurs Avec des rôles, des métiers Avec pour objectifs de passer des besoins

Plus en détail

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3

I Arbres binaires. Lycée Faidherbe 2014-2015. 1 Rappels 2 1.1 Définition... 2 1.2 Dénombrements... 2 1.3 Parcours... 3 I Arbres binaires 2014-2015 Table des matières 1 Rappels 2 1.1 Définition................................................ 2 1.2 Dénombrements............................................ 2 1.3 Parcours.................................................

Plus en détail

MATHÉMATIQUES ET SCIENCES HUMAINES

MATHÉMATIQUES ET SCIENCES HUMAINES MATHÉMATIQUES ET SCIENCES HUMAINES B. MARCHADIER Dépendance et indépendance de deux aléas numériques images Mathématiques et sciences humaines, tome 25 (1969), p. 2534.

Plus en détail

Contexte général de l étude

Contexte général de l étude 1 2 Contexte général de l étude Les entrepôts de données associés à des outils d analyse On Line Analytical Processing (OLAP), représentent une solution effective pour l informatique décisionnelle (Immon,

Plus en détail

ORDRE DE RÉACTION : MÉTHODES DE

ORDRE DE RÉACTION : MÉTHODES DE ORDRE DE RÉACTION : MÉTHODES DE RÉSOLUTION Table des matières 1 Méthodes expérimentales 2 1.1 Position du problème..................................... 2 1.2 Dégénérescence de l ordre...................................

Plus en détail

Business & High Technology

Business & High Technology UNIVERSITE DE TUNIS INSTITUT SUPERIEUR DE GESTION DE TUNIS Département : Informatique Business & High Technology Chapitre 09 : CC : Cloud Computing Sommaire Introduction... 2 Définition... 2 Les différentes

Plus en détail

Chap. III : Le système d exploitation

Chap. III : Le système d exploitation UMR 7030 - Université Paris 13 - Institut Galilée Cours Architecture et Système Le système d exploitation (ou O.S. de l anglais Operating System ) d un ordinateur est le programme qui permet d accéder

Plus en détail

Ordonnancement : entre théorie et applications

Ordonnancement : entre théorie et applications Christophe RAPINE Laboratoire LGIPM, université de Lorraine Ecole des Jeunes Chercheurs du GDR-RO 1 Qu est-ce que l ordonnancement? Organiser la réalisation d un ensemble de tâches Planification dans le

Plus en détail

Livre banc. Contrôle de trajet dynamique : la base de votre WAN hybride

Livre banc. Contrôle de trajet dynamique : la base de votre WAN hybride Contrôle de trajet dynamique : la base de votre WAN hybride Le réseau étendu (WAN, wide area network) a connu bien peu d innovations pendant une grande partie de la dernière décennie. Alors que le reste

Plus en détail

Management par les processus Les facteurs clés de succès. Lionel Di Maggio Master 1 MIAGE

Management par les processus Les facteurs clés de succès. Lionel Di Maggio Master 1 MIAGE Management par les processus Les facteurs clés de succès Lionel Di Maggio Master 1 MIAGE 1 1. Objectifs et définitions 2. Le retour sur investissement des démarches 3. Les éléments structurants 4. Mise

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Algorithmes de tri. 1 Introduction

Algorithmes de tri. 1 Introduction Algorithmes de tri L objectif de ce document est de présenter plusieurs algorithmes classiques de tri. On commence par présenter chaque méthode de manière intuitive, puis on détaille un exemple d exécution

Plus en détail

Optimisation for Cloud Computing and Big Data

Optimisation for Cloud Computing and Big Data 1 / 23 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 23 Aujourd hui Problèmes de fiabilité on va oublier la dynamicité Placement de VMs en programmation par contraintes

Plus en détail

Modélisation des Systèmes d Information Jean-Yves Antoine

Modélisation des Systèmes d Information Jean-Yves Antoine Modélisation des Systèmes d Information Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine Processus de développement logiciel Jean-Yves Antoine U. Bretagne Sud - UFR SSI - IUP Vannes année 2001-2002

Plus en détail

Bienvenue dans le monde de la construction logicielle

Bienvenue dans le monde de la construction logicielle Chapitre 1 Bienvenue dans le monde de la construction logicielle Sommaire : 1.1 La construction logicielle, qu est-ce que c est? : page 3 1.2 Pourquoi la construction logicielle est-elle importante? :

Plus en détail

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com

L essentiel. Coopérative, flexible, très performante : la plateforme Engineering Base. web aucotec.com L essentiel Coopérative, flexible, très performante : la plateforme Engineering Base web aucotec.com Les défis La globalisation des structures d ingénierie avec le travail en réseau sur des sites dispersés

Plus en détail

Optimisation en nombres entiers

Optimisation en nombres entiers Optimisation en nombres entiers p. 1/83 Optimisation en nombres entiers Michel Bierlaire michel.bierlaire@epfl.ch EPFL - Laboratoire Transport et Mobilité - ENAC Optimisation en nombres entiers p. 2/83

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

Le corps R des nombres réels

Le corps R des nombres réels Le corps R des nombres réels. Construction de R à l aide des suites de Cauchy de nombres rationnels On explique brièvement dans ce paragraphe comment construire le corps R des nombres réels à partir du

Plus en détail

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction

Plus en détail

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Espace de probabilité, indépendance et probabilité conditionnelle

Espace de probabilité, indépendance et probabilité conditionnelle Chapter 2 Espace de probabilité, indépendance et probabilité conditionnelle Sommaire 2.1 Tribu et événements........................................... 15 2.2 Probabilité................................................

Plus en détail

Placements de tours sur les diagrammes de permutations

Placements de tours sur les diagrammes de permutations Placements de tours sur les diagrammes de permutations 5 août 0 Résumé Le problème des placements de tours consiste à compter le nombre de manières de placer k tours sur un échiquier sans que les tours

Plus en détail

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle

Besoin de concevoir des systèmes massivement répartis. Comment tester le système? Solution. Évaluation de systèmes répartis à large échelle Besoin de concevoir des systèmes massivement répartis. Évaluation de systèmes répartis à large échelle Sergey Legtchenko Motivation : LIP6-INRIA Tolérance aux pannes Stockage de données critiques Coût

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Introduction à l Informatique

Introduction à l Informatique Introduction à l Informatique. Généralités : Etymologiquement, le mot informatique veut dire «traitement d information». Ceci signifie que l ordinateur n est capable de fonctionner que s il y a apport

Plus en détail

Mathématiques pour l informatique 1 notes de cours sur la seconde partie

Mathématiques pour l informatique 1 notes de cours sur la seconde partie Mathématiques pour l informatique notes de cours sur la seconde partie L Université Paris-Est, Marne-la-Vallée Cyril Nicaud Organisation Ce demi-cours est composé de 6 séances de cours et 6 séances de

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

LE PROBLEME DU FLOT MAXIMAL

LE PROBLEME DU FLOT MAXIMAL LE PROBLEME DU FLOT MAXIMAL I Exemple d introduction Deux châteaux d'eau alimentent 3 villes à travers un réseau de canalisations au sein duquel se trouvent également des stations de pompage. Les châteaux

Plus en détail

Parallélisme. Cours 1

Parallélisme. Cours 1 Parallélisme Cours 1 TD : 20% - TP : 30% - Examen : 50% Feuille A4 manuscrite (pas de photocopie) Fabrice.Huet@etu.unice.fr (prendre rdv par mail pr le contacter) A quoi sert le parallélisme? Augmenter

Plus en détail

Les graphes d intervalles

Les graphes d intervalles Les graphes d intervalles Complément au chapitre 3 «Vol aux archives cantonales» Considérons un ensemble de tâches ayant chacune une heure de début et une heure de fin bien précises. Supposons qu on demande

Plus en détail

Guide de sélection d une solution de planification

Guide de sélection d une solution de planification Guide de sélection d une solution de planification Liste des points essentiels que votre prochaine solution de planification doit couvrir Une publication de PlanningForce Table des matières 1. Ressources

Plus en détail