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-

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

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

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

Factorisation des matrices creuses

Factorisation des matrices creuses Chapitre 5 Factorisation des matrices creuses 5.1 Matrices creuses La plupart des codes de simulation numérique en mécanique des fluides ou des structures et en électromagnétisme utilisent des discrétisations

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

À 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

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

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

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

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

Fondements de l informatique: Examen Durée: 3h

Fondements de l informatique: Examen Durée: 3h École polytechnique X2013 INF412 Fondements de l informatique Fondements de l informatique: Examen Durée: 3h Sujet proposé par Olivier Bournez Version 3 (corrigé) L énoncé comporte 4 parties (sections),

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

Description du module GENERATEUR rev.2 1. Rôle du module

Description du module GENERATEUR rev.2 1. Rôle du module Description du module GENERATEUR rev.2 1. Rôle du module Ce module doit implémenter un générateur de «points aléatoires» selon une répartition de densité donnée. Tout d abord, le générateur doit être initialisé

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

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

Service combinators for farming virtual machines

Service combinators for farming virtual machines Master d Informatique Fondamentale École Normale Supérieure de Lyon Sémantique du parallélisme Chantal Keller Service combinators for farming virtual machines K. Bhargavan, A. D. Gordon, I. Narasamdya

Plus en détail

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Objectifs du cours d aujourd hui Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Continuer l approfondissement de la programmation de

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

Quelques problèmes NP-complets

Quelques problèmes NP-complets Chapitre 12 Quelques problèmes NP-complets Maintenant que nous connaissons la NP-complétude d au moins un problème (SAT), nous allons montrer qu un très grand nombre de problèmes sont NP-complets. Le livre

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

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

RAPPORT DE STAGE Calcul parallèle sur GPU

RAPPORT DE STAGE Calcul parallèle sur GPU Université Joseph Fourier Département Licence Sciences & Technologie RAPPORT DE STAGE Calcul parallèle sur GPU D Aguanno Carlotta Laboratoire d accueil : INRIA Directeur du laboratoire : GROS Patrick Responsable

Plus en détail

RECHERCHE OPERATIONNELLE

RECHERCHE OPERATIONNELLE RECHERCHE OPERATIONNELLE PROBLEME DE L ARBRE RECOUVRANT MINIMAL I - INTRODUCTION (1) Définitions (2) Propriétés, Conditions d existence II ALGORITHMES (1) Algorithme de KRUSKAL (2) Algorithme de PRIM I

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

ENTREPÔTS ET MAGASINS

ENTREPÔTS ET MAGASINS Michel Roux ENTREPÔTS ET MAGASINS Tout ce qu il faut savoir pour concevoir une unité de stockage Cinquième édition, 1995, 2001, 2003, 2008, 2011 ISBN : 978-2-212-55189-1 2 LES PHASES DE SIMULATION DE VALIDATION

Plus en détail

CALCUL SCIENTIFIQUE. 1 Erreur absolue et erreur relative 2. 2 Représentation des nombres sur ordinateur 3

CALCUL SCIENTIFIQUE. 1 Erreur absolue et erreur relative 2. 2 Représentation des nombres sur ordinateur 3 MTH1504 2011-2012 CALCUL SCIENTIFIQUE Table des matières 1 Erreur absolue et erreur relative 2 2 Représentation des nombres sur ordinateur 3 3 Arithmétique flottante 4 3.1 Absorption........................................

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

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

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Analyse Statique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 12 mai 2007 1 / 38 Indécidabilité de la Terminaison

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

MÉTHODOLOGIE DE CONCEPTION DES CIRCUITS INTÉGRÉS DIGITAUX

MÉTHODOLOGIE DE CONCEPTION DES CIRCUITS INTÉGRÉS DIGITAUX MODULE: SYSTEMES NUMERIQUES COMPLEXES Cours 1 MÉTHODOLOGIE DE CONCEPTION DES CIRCUITS INTÉGRÉS DIGITAUX H.Boumeridja 1 Introduction Méthodologie de conception des circuits intégrés digitaux: approche descendante

Plus en détail

Arbres binaires. Hélène Milhem. Institut de Mathématiques de Toulouse, INSA Toulouse, France IUP SID, 2011-2012

Arbres binaires. Hélène Milhem. Institut de Mathématiques de Toulouse, INSA Toulouse, France IUP SID, 2011-2012 Arbres binaires Hélène Milhem Institut de Mathématiques de Toulouse, INSA Toulouse, France IUP SID, 2011-2012 H. Milhem (IMT, INSA Toulouse) Arbres binaires IUP SID 2011-2012 1 / 35 PLAN Introduction Construction

Plus en détail

Groupe Eyrolles, 2001, 2003, 2004, ISBN : 2-212-11480-X

Groupe Eyrolles, 2001, 2003, 2004, ISBN : 2-212-11480-X Groupe Eyrolles, 2001, 2003, 2004, ISBN : 2-212-11480-X Chapitre 6 Exercices corrigés et conseils méthodologiques Mots-clés Activité continue/finie Transition automatique Contexte statique Événements «after»

Plus en détail

Sauvegarde et restauration en environnement VMware avec Avamar 6.0

Sauvegarde et restauration en environnement VMware avec Avamar 6.0 Livre blanc Sauvegarde et restauration en environnement VMware avec Avamar 6.0 Analyse détaillée Résumé Dans les entreprises, les environnements virtuels sont de plus en plus déployés dans le cloud. La

Plus en détail

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1 Exemples de problèmes et d applications INF6953 Exemples de problèmes Sommaire Quelques domaines d application Quelques problèmes réels Allocation de fréquences dans les réseaux radio-mobiles Affectation

Plus en détail

11. Evaluation de la qualité des essais

11. Evaluation de la qualité des essais 11. Evaluation de la qualité des essais L évaluation de la qualité méthodologique d un essai thérapeutique est une tâche difficile [117]. L essai thérapeutique contrôlé randomisé est considéré comme étant

Plus en détail

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

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

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr

Ordonnancement Temps Réel. Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr Ordonnancement Temps Réel Emmanuel GROLLEAU & Pascal RICHARD LISI/ENSMA {grolleau,richardp}@ensma.fr 2 Plan de la présentation 1. Introduction aux systèmes temps réel 1.1 Différents modèles de tâches 1.2

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

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE

MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE Annexe MATHÉMATIQUES CYCLE TERMINAL DE LA SÉRIE ÉCONOMIQUE ET SOCIALE ET DE LA SÉRIE LITTERAIRE CLASSE DE PREMIÈRE L enseignement des mathématiques au collège et au lycée a pour but de donner à chaque

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

IFT2251 : Génie logiciel

IFT2251 : Génie logiciel Julie Vachon, Hiver 2006 IFT2251 : Génie logiciel Chapitre 5. Conception Section 3. Principes et qualités Conception : principes et qualités 1. L activité de conception 2. Principes de conception 3. Concevoir

Plus en détail

TEPZZ 88_8 9A_T EP 2 881 839 A1 (19) (11) EP 2 881 839 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 1/32 (2006.01) G06F 9/48 (2006.

TEPZZ 88_8 9A_T EP 2 881 839 A1 (19) (11) EP 2 881 839 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 1/32 (2006.01) G06F 9/48 (2006. (19) TEPZZ 88_8 9A_T (11) EP 2 881 839 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication:.06.1 Bulletin 1/24 (1) Int Cl.: G06F 1/32 (06.01) G06F 9/48 (06.01) (21) Numéro de dépôt: 1419809.0 (22)

Plus en détail

Système d exploitation

Système d exploitation Chapitre 2 Système d exploitation 2.1 Définition et rôle Un ordinateur serait bien difficile à utiliser sans interface entre le matériel et l utilisateur. Une machine peut exécuter des programmes, mais

Plus en détail

HAUTE PERFORMANCE DE CALCUL

HAUTE PERFORMANCE DE CALCUL Journées d études 2010 Modélisation actif-passif & HAUTE PERFORMANCE DE CALCUL FRACTALES 0 Journées d études 2010 Sommaire Projet SIGMA 1 ère partie 1.! Le printemps des modèles Applications Haute Performance

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Groupe de travail Infrastructures de recherche

Groupe de travail Infrastructures de recherche Groupe de travail Infrastructures de recherche Note sur les particularités des infrastructures pour une recherche dans le numérique Version internet - 30/04/2015 Les plates- formes numériques, outils et

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 : Biologie, chimie, physique et sciences de la Terre (BCPST) Discipline : Informatique Première et seconde années

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

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

INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE

INTRODUCTION AUX PROBLEMES COMBINATOIRES DIFFICILES : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Leçon 10 INTRODUCTION AUX PROBLEMES COMBINATOIRES "DIFFICILES" : LE PROBLEME DU VOYAGEUR DE COMMERCE ET LE PROBLEME DE COLORATION D'UN GRAPHE Dans cette leçon, nous présentons deux problèmes très célèbres,

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

GEL 1001 Design I (méthodologie)

GEL 1001 Design I (méthodologie) GEL 1001 Design I (méthodologie) Technique 2 Systèmes embarqués et fiabilité Hiver 2013 Département de génie électrique et de génie informatique Plan Système embarqué Ordinateur et architecture Von Neumann

Plus en détail

Les systèmes embarqués et les tendances technologiques: une évolution constante, une innovation continue!

Les systèmes embarqués et les tendances technologiques: une évolution constante, une innovation continue! Les systèmes embarqués et les tendances technologiques: une évolution constante, une innovation continue! Vasiliki Sfyrla Une approche des systèmes embarqués Les systèmes embarqués existent depuis longtemps.

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list =

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

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

Les principaux domaines de l informatique

Les principaux domaines de l informatique Les principaux domaines de l informatique... abordés dans le cadre de ce cours: La Programmation Les Systèmes d Exploitation Les Systèmes d Information La Conception d Interfaces Le Calcul Scientifique

Plus en détail

Structures de données et algorithmes fondamentaux

Structures de données et algorithmes fondamentaux Structures de données et algorithmes fondamentaux 01 Complexité algorithmique Anthony Labarre 20 octobre 2015 Informations pratiques Mes coordonnées : Anthony Labarre E-mail : Anthony.Labarre@univ-mlv.fr

Plus en détail

Analyse et mesure de performances du calcul distribué

Analyse et mesure de performances du calcul distribué Analyse et mesure de performances du calcul distribué Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma CruCID Workshop, EMI, Rabat, 5 au 7 juillet 1999 Motivation Types d applications

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

THÈSE L UNIVERSITÉ BORDEAUX I

THÈSE L UNIVERSITÉ BORDEAUX I THÈSE présentée à L UNIVERSITÉ BORDEAUX I ÉCOLE DOCTORALE DE MATHÉMATIQUES ET D INFORMATIQUE Par Hejer REJEB POUR OBTENIR LE GRADE DE DOCTEUR SPÉCIALITÉ : Informatique Étude des problèmes d ordonnancement

Plus en détail

Calcul Scientifique L2 Maths Notes de Cours

Calcul Scientifique L2 Maths Notes de Cours Calcul Scientifique L2 Maths Notes de Cours Le but de ce cours est d aborder le Calcul Scientifique, discipline arrivant en bout d une d une chaîne regroupant divers concepts tels que la modélisation et

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

Programme de Première

Programme de Première BAC TECHNO STAV 66 I. Algèbre Programme de Première Objectif 1 - Effectuer de manière autonome des calculs numériques ou algébriques, résoudre des équations ou inéquations en vue de résoudre des problèmes

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

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

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall L utilisation d un réseau de neurones pour optimiser la gestion d un firewall Réza Assadi et Karim Khattar École Polytechnique de Montréal Le 1 mai 2002 Résumé Les réseaux de neurones sont utilisés dans

Plus en détail

Simulation des réseaux de capteurs sans fil de grande taille

Simulation des réseaux de capteurs sans fil de grande taille Simulation des réseaux de capteurs sans fil de grande taille Cheick-Tidjane KONE Directeurs: Francis LEPAGE Co-encadrant : Michael DAVID Journée thématique RGE Jeudi 3 juin 2010 Qu est-ce qu un réseau

Plus en détail

Chapitre 3 RÉGRESSION ET CORRÉLATION

Chapitre 3 RÉGRESSION ET CORRÉLATION Statistique appliquée à la gestion et au marketing http://foucart.thierry.free.fr/statpc Chapitre 3 RÉGRESSION ET CORRÉLATION La corrélation est une notion couramment utilisée dans toutes les applications

Plus en détail

Structure en couches des systèmes informatiques

Structure en couches des systèmes informatiques Structure en couches des systèmes informatiques Vue simplifiée d un système informatique Ce que le simple utilisateur perçoit «à première vue» d un système informatique : Le boîtier (tour, desktop ou portable)

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

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

Parallélisation Automatique

Parallélisation Automatique Parallélisation Automatique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr 8 septembre 2008 1 / 23 Pourquoi la parallélisation automatique? Les gains de performances dus à la technologie s amenuisent

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

CI-4 PRÉVOIR ET SUPPRIMER LES

CI-4 PRÉVOIR ET SUPPRIMER LES CI-4 LES CONTRAINTES DE MONTAGE D UN SYSTÈME. Objectifs ANALYSER - OPTIMISER A la fin de la séquence de révision, l élève doit être capable de B2 Proposer un modèle de connaissance et de comportement Déterminer

Plus en détail

ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE

ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE ÉTUDE DE L EFFICACITÉ DE GÉOGRILLES POUR PRÉVENIR L EFFONDREMENT LOCAL D UNE CHAUSSÉE ANALYSIS OF THE EFFICIENCY OF GEOGRIDS TO PREVENT A LOCAL COLLAPSE OF A ROAD Céline BOURDEAU et Daniel BILLAUX Itasca

Plus en détail

Mémoire virtuelle. Généralités

Mémoire virtuelle. Généralités Mémoire virtuelle Généralités La pagination pure - Conversion d adresses virtuelles en adresses physiques - Table des pages à plusieurs niveau et table inversée - Algorithmes de remplacement de page -

Plus en détail

L évolution de l automatisation.

L évolution de l automatisation. Gestion automatisée de la qualité Livre blanc Octobre 2009 L évolution de l automatisation. Etude de l évolution de l automatisation dans la gestion de la qualité des logiciels Page 2 Sommaire 2 Introduction

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

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

Table des matières. Cours Système d Exploitation. Chapitre II : Gestion des processus

Table des matières. Cours Système d Exploitation. Chapitre II : Gestion des processus Chapitre II : Gestion des processus Table des matières I Processus et contexte d un processus 2 II État d un processus 3 III Système d exploitation multi-tâches et parallélisme 3 IV Problèmes dues au multi-tâches

Plus en détail

Gestion de données à large échelle. Anne Doucet LIP6 Université Paris 6

Gestion de données à large échelle. Anne Doucet LIP6 Université Paris 6 Gestion de données à large échelle Anne Doucet LIP6 Université Paris 6 1 Plan Contexte Les réseaux P2P Non structurés Structurés Hybrides Localisation efficace et Interrogation complète et exacte des données.

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

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

Plan du cours. Vocabulaire. Définitions d un projet. Les cinq phases de la Gestion de Projets. 1- Conception

Plan du cours. Vocabulaire. Définitions d un projet. Les cinq phases de la Gestion de Projets. 1- Conception Plan du cours Vocabulaire Définitions d un projet Les cinq phases de la Gestion de Projets 1- Conception Planification du Projet Ingénierie du projet Ordonnancement des activités Estimation des durées

Plus en détail

Thème 11 Réseaux de Petri Places-Transitions

Thème 11 Réseaux de Petri Places-Transitions Thème 11 Réseaux de Petri Places-Transitions Contenu du thème 1. Introduction 2. RdP PT 3. Protocoles de communication Références Diaz, Michel (2001) Les Réseaux de Petri Modèles fondamentaux, Hermes Science

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

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

Un corrigé de l épreuve de mathématiques du baccalauréat blanc

Un corrigé de l épreuve de mathématiques du baccalauréat blanc Terminale ES Un corrigé de l épreuve de mathématiques du baccalauréat blanc EXERCICE ( points). Commun à tous les candidats On considère une fonction f : définie, continue et doublement dérivable sur l

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

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail

OrdoNet, un outil de modélisation et d analyse des graphes potentiel-tâche sous Matlab

OrdoNet, un outil de modélisation et d analyse des graphes potentiel-tâche sous Matlab OrdoNet, un outil de modélisation et d analyse des graphes potentiel-tâche sous Matlab Bruno Sareni, Gérard Fontan,, Elodie Chanthery, Stéphane Caux {Gerard.Fontan, Bruno.Sareni, Stephane.Caux}@enseeiht.fr

Plus en détail

Contributions à l expérimentation sur les systèmes distribués de grande taille

Contributions à l expérimentation sur les systèmes distribués de grande taille Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte

Plus en détail

Décomposition de domaine pour un milieu poreux fracturé

Décomposition de domaine pour un milieu poreux fracturé Décomposition de domaine pour un milieu poreux fracturé Laila AMIR 1, Michel KERN 2, Vincent MARTIN 3, Jean E ROBERTS 4 1 INRIA-Rocquencourt, B.P. 105, F-78153 Le Chesnay Cedex Email: laila.amir@inria.fr

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