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 trystram@imag.fr 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 seti@home, folding@home, 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

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

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

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

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

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

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

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

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 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

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

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration Julien MATHEVET Alexandre BOISSY GSID 4 Rapport Load Balancing et migration Printemps 2001 SOMMAIRE INTRODUCTION... 3 SYNTHESE CONCERNANT LE LOAD BALANCING ET LA MIGRATION... 4 POURQUOI FAIRE DU LOAD BALANCING?...

Plus en détail

Synthèse «Le Plus Grand Produit»

Synthèse «Le Plus Grand Produit» Introduction et Objectifs Synthèse «Le Plus Grand Produit» Le document suivant est extrait d un ensemble de ressources plus vastes construites par un groupe de recherche INRP-IREM-IUFM-LEPS. La problématique

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

Concevoir et déployer un data warehouse

Concevoir et déployer un data warehouse Concevoir et déployer un data warehouse Ralph Kimball Éditions Eyrolles ISBN : 2-212-09165-6 2000 2 Le cycle de vie dimensionnel Avant d étudier de plus près les spécificités de la conception, du développement

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

Principe de symétrisation pour la construction d un test adaptatif

Principe de symétrisation pour la construction d un test adaptatif Principe de symétrisation pour la construction d un test adaptatif Cécile Durot 1 & Yves Rozenholc 2 1 UFR SEGMI, Université Paris Ouest Nanterre La Défense, France, cecile.durot@gmail.com 2 Université

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

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

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services 69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard

Plus en détail

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement Bernard Fortz 2008-2009 Table des matières 1 Définition et classification des problèmes d ordonnancement 2 1.1 Introduction....................................

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

LE PROBLEME DU PLUS COURT CHEMIN

LE PROBLEME DU PLUS COURT CHEMIN LE PROBLEME DU PLUS COURT CHEMIN Dans cette leçon nous définissons le modèle de plus court chemin, présentons des exemples d'application et proposons un algorithme de résolution dans le cas où les longueurs

Plus en détail

Le produit semi-direct

Le produit semi-direct Le produit semi-direct Préparation à l agrégation de mathématiques Université de Nice - Sophia Antipolis Antoine Ducros Octobre 2007 Ce texte est consacré, comme son titre l indique, au produit semi-direct.

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

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

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

CHAPITRE 5. Stratégies Mixtes

CHAPITRE 5. Stratégies Mixtes CHAPITRE 5 Stratégies Mixtes Un des problèmes inhérents au concept d équilibre de Nash en stratégies pures est que pour certains jeux, de tels équilibres n existent pas. P.ex.le jeu de Pierre, Papier,

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

# 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>

# 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

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

Ordonnancement temps réel

Ordonnancement temps réel Ordonnancement temps réel Laurent.Pautet@enst.fr Version 1.5 Problématique de l ordonnancement temps réel En fonctionnement normal, respecter les contraintes temporelles spécifiées par toutes les tâches

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

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

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1 CHAPTER 1 Ordonnancement 1.1. Étude de cas Ordonnancement de tâches avec contraintes de précédences 1.1.1. Exemple : construction d'une maison. Exercice. On veut construire une maison, ce qui consiste

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée ppd/mpassing p. 1/43 Programmation parallèle et distribuée Communications par messages Philippe MARQUET Philippe.Marquet@lifl.fr Laboratoire d informatique fondamentale de Lille Université des sciences

Plus en détail

Initiation au HPC - Généralités

Initiation au HPC - Généralités Initiation au HPC - Généralités Éric Ramat et Julien Dehos Université du Littoral Côte d Opale M2 Informatique 2 septembre 2015 Éric Ramat et Julien Dehos Initiation au HPC - Généralités 1/49 Plan du cours

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

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

Optimisation for Cloud Computing and Big Data

Optimisation for Cloud Computing and Big Data 1 / 31 Optimisation for Cloud Computing and Big Data Olivier Beaumont, Lionel Eyraud-Dubois 2 / 31 Le Cloud, qu est-ce que c est? C est récent Amazon qui commence (2006) avec AWS Dropbox, Google App Engine

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

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications A. Optimisation sans contrainte.... Généralités.... Condition nécessaire et condition suffisante

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

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Chapitre V : La gestion de la mémoire Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping Introduction Plusieurs dizaines de processus doivent se partager

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

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Baccalauréat ES/L Amérique du Sud 21 novembre 2013 Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

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

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

REALISATION d'un. ORDONNANCEUR à ECHEANCES

REALISATION d'un. ORDONNANCEUR à ECHEANCES REALISATION d'un ORDONNANCEUR à ECHEANCES I- PRÉSENTATION... 3 II. DESCRIPTION DU NOYAU ORIGINEL... 4 II.1- ARCHITECTURE... 4 II.2 - SERVICES... 4 III. IMPLÉMENTATION DE L'ORDONNANCEUR À ÉCHÉANCES... 6

Plus en détail

Asynchronisme : Cadres continu et discret

Asynchronisme : Cadres continu et discret N d ordre : 151 Année 2006 HABILITATION À DIRIGER DES RECHERCHES UNIVERSITÉ DE FRANCHE-COMTÉ Spécialité Informatique présentée par Sylvain CONTASSOT-VIVIER Docteur en Informatique Sujet Asynchronisme :

Plus en détail

4.2 Unités d enseignement du M1

4.2 Unités d enseignement du M1 88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter

Plus en détail

Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain?

Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain? DOSSIER SOLUTION Solution CA Virtual Placement and Balancing Comment optimiser l utilisation des ressources Cloud et de virtualisation, aujourd hui et demain? agility made possible La solution automatisée

Plus en détail

Partie 7 : Gestion de la mémoire

Partie 7 : Gestion de la mémoire INF3600+INF2610 Automne 2006 Partie 7 : Gestion de la mémoire Exercice 1 : Considérez un système disposant de 16 MO de mémoire physique réservée aux processus utilisateur. La mémoire est composée de cases

Plus en détail

3 Approximation de solutions d équations

3 Approximation de solutions d équations 3 Approximation de solutions d équations Une équation scalaire a la forme générale f(x) =0où f est une fonction de IR dans IR. Un système de n équations à n inconnues peut aussi se mettre sous une telle

Plus en détail

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007 Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................

Plus en détail

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples, Non-linéarité Contexte Pour permettre aux algorithmes de cryptographie d être sûrs, les fonctions booléennes qu ils utilisent ne doivent pas être inversées facilement. Pour cela, elles doivent être très

Plus en détail

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie

Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie Partie I : Séries statistiques descriptives univariées (SSDU) A Introduction Comment se servir de cet ouvrage? Chaque chapitre présente une étape de la méthodologie et tous sont organisés selon le même

Plus en détail

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I Roxane Duroux 1 Cadre de l étude Cette étude s inscrit dans le cadre de recherche de doses pour des essais cliniques

Plus en détail

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Ne laissez pas le stockage cloud pénaliser votre retour sur investissement Préparé par : George Crump, analyste senior Préparé le : 03/10/2012 L investissement qu une entreprise fait dans le domaine de

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R

Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Les simulations dans l enseignement des sondages Avec le logiciel GENESIS sous SAS et la bibliothèque Sondages sous R Yves Aragon, David Haziza & Anne Ruiz-Gazen GREMAQ, UMR CNRS 5604, Université des Sciences

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

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

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

I Stabilité, Commandabilité et Observabilité 11. 1 Introduction 13 1.1 Un exemple emprunté à la robotique... 13 1.2 Le plan... 18 1.3 Problème...

I Stabilité, Commandabilité et Observabilité 11. 1 Introduction 13 1.1 Un exemple emprunté à la robotique... 13 1.2 Le plan... 18 1.3 Problème... TABLE DES MATIÈRES 5 Table des matières I Stabilité, Commandabilité et Observabilité 11 1 Introduction 13 1.1 Un exemple emprunté à la robotique................... 13 1.2 Le plan...................................

Plus en détail

Chapitre 7. Récurrences

Chapitre 7. Récurrences Chapitre 7 Récurrences 333 Plan 1. Introduction 2. Applications 3. Classification des récurrences 4. Résolution de récurrences 5. Résumé et comparaisons Lectures conseillées : I MCS, chapitre 20. I Rosen,

Plus en détail

Garantir une meilleure prestation de services et une expérience utilisateur optimale

Garantir une meilleure prestation de services et une expérience utilisateur optimale LIVRE BLANC Garantir une meilleure prestation de services et une expérience utilisateur optimale Mai 2010 Garantir une meilleure prestation de services et une expérience utilisateur optimale CA Service

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

Plus en détail

Fibonacci et les paquerettes

Fibonacci et les paquerettes Fibonacci et les paquerettes JOLY Romain & RIVOAL Tanguy Introduction Quand on entend dire que l on peut trouver le nombre d or et la suite de Fibonacci dans les fleurs et les pommes de pin, on est au

Plus en détail

Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes.

Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes. Equilibrage de charge pour les grilles de calcul : classe des tâches dépendantes et indépendantes. Meriem Meddeber 1 et Belabbas Yagoubi 2 1 Université de Mascara, Faculté des sciences, Département des

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Consolidation de stockage

Consolidation de stockage (Information sur la technologie Sto-2003-2) Wolfgang K. Bauer Spécialiste stockage Centre de compétence transtec AG Waldhörnlestraße 18 D-72072 Tübingen Allemagne TABLE DES MATIÈRES 1 RÉSUMÉ...3 2 INTRODUCTION...4

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

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

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Atteindre la flexibilité métier grâce au data center agile

Atteindre la flexibilité métier grâce au data center agile Atteindre la flexibilité métier grâce au data center agile Aperçu : Permettre l agilité du data-center La flexibilité métier est votre objectif primordial Dans le monde d aujourd hui, les clients attendent

Plus en détail

En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.)

En face du commanditaire, on met un chef de projet qui connait le domaine (banque, administration, etc.) Atelier «Science du projet» séance 4 8 novembre 2008 Compte rendu 1. Sébastien Larribe : la méthode AGILE, méthode de gestion de projet Sébastien Larribe part de l hypothèse que des méthodes de conception,

Plus en détail

INTELLIGENCE ECONOMIQUE : ENJEUX ET RETOUR D EXPERIENCE PILOTE DANS SEPT PMI DE BOURGOGNE

INTELLIGENCE ECONOMIQUE : ENJEUX ET RETOUR D EXPERIENCE PILOTE DANS SEPT PMI DE BOURGOGNE INTELLIGENCE ECONOMIQUE : ENJEUX ET RETOUR D EXPERIENCE PILOTE DANS SEPT PMI DE BOURGOGNE BUSINESS INTELLIGENCE : GOALS AND RESULTS OF A PILOT EXPERIMENT INVOLVING SEVEN SMEs FROM BOURGOGNE Ludovic DENOYELLE,

Plus en détail

Regard sur hybridation et infogérance de production

Regard sur hybridation et infogérance de production Regard sur hybridation et infogérance de production Février 2014 édito «comment transformer l hybridation des infrastructures en levier de performances?» Les solutions d infrastructure connaissent depuis

Plus en détail

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION Classe de terminale de la série Sciences et Technologie du Management et de la Gestion Préambule Présentation Les technologies de l information

Plus en détail

Parallélisme et Répartition

Parallélisme et Répartition Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre

Plus en détail

Biostatistiques Biologie- Vétérinaire FUNDP Eric Depiereux, Benoît DeHertogh, Grégoire Vincke

Biostatistiques Biologie- Vétérinaire FUNDP Eric Depiereux, Benoît DeHertogh, Grégoire Vincke www.fundp.ac.be/biostats Module 140 140 ANOVA A UN CRITERE DE CLASSIFICATION FIXE...2 140.1 UTILITE...2 140.2 COMPARAISON DE VARIANCES...2 140.2.1 Calcul de la variance...2 140.2.2 Distributions de référence...3

Plus en détail

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178 Thèse no. 7178 PROBLEMES D'OPTIMISATION DANS LES SYSTEMES DE CHAUFFAGE A DISTANCE présentée à l'ecole POLYTECHNIQUE FEDERALE DE ZURICH pour l'obtention du titre de Docteur es sciences naturelles par Alain

Plus en détail

Gestion de projets logiciels. Xavier Dubuc

Gestion de projets logiciels. Xavier Dubuc Gestion de projets logiciels Résumé blocus Xavier Dubuc 16 janvier 2011 1 Table des matières 1 Planification (PERT-GANTT) 3 1.1 Définitions............................................. 3 1.2 Analyse un

Plus en détail

Programmation linéaire et Optimisation. Didier Smets

Programmation linéaire et Optimisation. Didier Smets Programmation linéaire et Optimisation Didier Smets Chapitre 1 Un problème d optimisation linéaire en dimension 2 On considère le cas d un fabricant d automobiles qui propose deux modèles à la vente, des

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Date : 18.11.2013 Tangram en carré page

Date : 18.11.2013 Tangram en carré page Date : 18.11.2013 Tangram en carré page Titre : Tangram en carré Numéro de la dernière page : 14 Degrés : 1 e 4 e du Collège Durée : 90 minutes Résumé : Le jeu de Tangram (appelé en chinois les sept planches

Plus en détail

CORBA haute performance

CORBA haute performance CORBA haute performance «CORBA à 730Mb/s!» Alexandre DENIS PARIS/IRISA, Rennes Alexandre.Denis@irisa.fr Plan Motivations : concept de grille de calcul CORBA : concepts fondamentaux Vers un ORB haute performance

Plus en détail