Une adaptation simple et efficace du modèle MapReduce pour la programmation par contraintes

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

Download "Une adaptation simple et efficace du modèle MapReduce pour la programmation par contraintes"

Transcription

1 Actes JFPC 2013 Une adaptation simple et efficace du modèle MapReduce pour la programmation par contraintes Jean-Charles Régin Mohamed Rezgui Arnaud Malapert Université Nice-Sophia Antipolis I3S UMR 6070, CNRS, France. Résumé Nous proposons MapReduceCP, une méthode simple et efficace pour résoudre les problèmes de programmation par contraintes en parallèle. Au lieu d utiliser l approche classique basée sur le work stealing, nous adaptons le modèle MapReduce à la décomposition de l espace de recherche. Nous découpons le problème initial en un grand nombre de sousproblèmes distincts puis nous les résolvons de façon dynamique avec les workers disponibles (les cœurs des machines). Les expériences avec les problèmes de satisfaction et les problèmes d optimisation suggèrent de fixer à trente, le nombre de sous-problèmes non détectés inconsistants par worker afin d obtenir un bon passage à l échelle. Nous montrons que notre méthode est très compétitive avec l approche work stealing et qu elle est capable de résoudre certains problèmes classiques avec la capacité maximale des machines multi-cœurs. Grâce à cette méthode, l utilisateur peut paralléliser la résolution d un problème sans modifier le solveur ou écrire de code source parallèle. 1 Introduction Il existe principalement deux manières de paralléliser un solveur de programmation par contraintes. D une part, les algorithmes de filtrage (ou la propagation) sont parallélisés ou distribués. Le travail le plus remarquable sur ce sujet a été réalisé par Y. Hamadi [6]. D autre part, le processus de recherche est parallélisé. Nous focalisons notre attention sur cette méthode. Pour une description plus complète des méthodes qui ont été testées pour l utilisation d un solveur CP en parallèle, le lecteur peut se référer à l étude de Gent et al. [5]. Lorsque nous voulons utiliser k machines pour la résolution d un problème, nous pouvons découper le problème initial en k sous-problèmes disjoints et donner un sous-problème à chaque machine. Nous appelons cette méthode : méthode de décomposition statique simple. Ensuite, nous recueillons les différents résultats afin de produire des résultats correspondant à l ensemble du problème. L avantage de cette méthode est sa simplicité. Malheureusement, il souffre de plusieurs inconvénients qui surviennent fréquemment dans la pratique : les temps passés à résoudre chaque sous-problème sont rarement bien équilibrés. Afin d équilibrer les sous-problèmes qui doivent être résolus, certains travaux ont été réalisés sur la décomposition de l arbre de recherche [9, 3, 8]. Toutefois, la taille des arbres est approximative et n est pas strictement corrélée avec le temps de résolution. Ainsi, comme mentionné par Bordeaux et al. [1], il est assez difficile de s assurer que chaque worker recevra la même quantité de travail. Par conséquent, cette méthode souffre de quelques problèmes de passage à l échelle, car le temps de résolution est le maximum du temps de résolution de chaque worker. Afin de remédier à ces problèmes, une autre approche a été proposée et est actuellement plus populaire : l idée du work stealing. Le work stealing est assez simple : les workers résolvent une partie des problèmes et quand un worker entre en phase de famine, il "vole" un peu de travail d un autre worker. Habituellement, il est mis en œuvre comme suit : quand un worker W n a plus de travail, il demande à un autre worker V s il a du travail à lui donner. Si la réponse est positive, alors le worker V découpe le problème qu il résout actuellement en deux sous-problèmes et en donne un des deux au worker W. Si la réponse est négative, alors W demande à un autre worker U, jusqu à ce qu il arrive à avoir un travail à faire ou que tous les autres workers ont été considérés. Cette méthode a été mise en œuvre dans un grand

2 nombre de solveurs (Comet [10] ou ILOG Solver [12] par exemple), et de plusieurs manières [14, 7, 16, 2] en fonction du fait que le travail à faire est centralisé ou non, du découpage de l arbre de recherche, ou de la méthode de communication entre les workers. L approche work stealing résout en partie le problème d équilibrage de la méthode de décomposition statique simple, principalement parce que la décomposition est dynamique. Par conséquent, il n est pas nécessaire d être en mesure de découper un problème en plusieurs parties équilibrées. Cependant, tous les sous-problèmes donnés à un autre worker ne sont pas égaux. Quand un worker est affamé, il doit éviter de voler trop de problèmes faciles, car dans ce cas, il devra demander un autre travail presque immédiatement. Cela se produit fréquemment à la fin de la recherche lorsqu un grand nombre de workers n ont pas de problèmes à résoudre et demandent tout le temps du travail et donc cela complexifie et ralentit la fin de la recherche en augmentant le temps de communication entre les workers. Ainsi, nous observons généralement que la méthode obtient un bon passage à l échelle pour un petit nombre de workers mais qu il est difficile de maintenir un gain linéaire lorsque le nombre de workers devient plus grand (certaines méthodes ont été développées pour tenter d augmenter ce passage à l échelle[15]). Dans cet article, nous proposons une autre méthode proche de la méthode de décomposition statique simple en utilisant les principes de la méthode MapReduce. Lorsque nous avons k workers, au lieu d essayer de découper le problème en k sous-parties équivalentes, nous proposons de découper le problème dans un grand nombre de sous-problèmes, par exemple 30k sous-problèmes, puis de donner successivement et de façon dynamique ces sousproblèmes aux workers lorsque ces derniers ont besoin de travail. Au lieu d attendre d avoir des sous-problèmes équivalents, nous nous attendons à ce que pour chaque worker, la somme des temps de résolution de ses sous-problèmes doit être équivalente. Ainsi, l idée n est pas de décomposer à priori le problème initial en un ensemble de problèmes équivalents, mais de décomposer le problème initial en un ensemble de sous-problèmes dont le temps de résolution peut être partagé d une manière équivalente par un ensemble de workers. Notez que nous ne savons pas à l avance les sous-problèmes qui seront résolus par worker, car c est déterminé de manière dynamique. Tous les sousproblèmes sont mis dans une file d attente et un worker prend un sous-problème dans cette file lorsqu il a besoin de travailler. La décomposition en sous-problèmes doit être fait avec soin. Nous ne devons pas définir un sous-problème si ce sous-problème aurait été éliminé par le mécanisme de propagation du solveur dans une recherche séquentielle. Ainsi,nous générons seulement les problèmes qui ne sont pas détéctés inconsistants par le solveur. Le papier est organisé comme suit. Nous rappelons d abord quelques principes sur la méthode MapReduce et les facteurs qui peuvent influer sur la parallélisation de l arbre de recherche. Puis, nous introduisons notre méthode, MapReduceCP, pour décomposer les problèmes initiaux. Ensuite, nous donnons des résultats expérimentaux. Enfin, nous concluons. 2 Préliminaires MapReduce est un modèle de programmation pour le traitement de grands ensembles de données, et également le nom d une implémentation du modèle par Google [4]. Il s agit d un cadre pour le traitement des problèmes massivement parallèles à travers les très grands ensembles de données utilisés par un grand nombre d ordinateurs. Ici, nous ne sommes pas intéressés par les détails du MapReduce, mais par ses principes. MapReduce a deux étapes : une étape Map et une étape Reduce : l étape Map : le nœud maître prend le problème initial, le découpe en petits sous-problèmes, et les distribue aux nœuds esclaves. Un nœud esclave peut le faire à nouveau à son tour, conduisant à une structure d arbre à niveaux multiples. Le nœud esclave traite le problème plus petit, et passe la réponse à son nœud maître. L étape Reduce : le nœud maître recueille ensuite les réponses de tous les sous-problèmes et les combine d une certaine manière pour former la sortie, qui correspond à la réponse au problème initial. Dans cet article, nous représentons l espace de recherche comme l immense ensemble de données du modèle MapReduce. Deux facteurs peuvent influer sur le rendement de la parallélisation de la recherche d un solveur (pas nécessairement un solveur CP) basée sur une méthode de décomposition, comme la décomposition statique simple, ou le work stealing, ou encore MapReduce. Nous considérons une partition d un problème P en un ensemble S de sousproblèmes. Si la somme du temps de résolution des sousproblèmes de S est plus grande que le temps de résolution de P, alors il sera difficile de passer à l échelle en fonction du nombre de workers. Cela peut arriver dans certains cas : la stratégie de recherche utilisée est basée sur les calculs précédents. Les expériences que nous avons effectuées ne montrent pas un tel comportement avec un solveur CP. Cependant, nous les avons constaté dans certains cas, avec un solveur MIP. Les temps de résolution de certains sous-problèmes de S sont courts ou bien vraiment plus courts que les autres. Toute méthode doit être en mesure de minimiser les communications et doit équilibrer l activité des workers. Les temps de résolution courts signifient que les workers doivent souvent demander du travail,

3 ce qui augmente les temps de communication. D autre part, si seulement quelques sous-problèmes requièrent des temps plus longs alors que la plupart d entre eux sont faciles, alors il peut être difficile d équilibrer la charge de chaque worker. 3 Décomposition de problème Dans cette partie, nous calculons S, une partition de sous-problèmes d un problème initial P. 3.1 Principes Nous avons vu que la décomposition du problème initial dans le même nombre de sous-problèmes que le nombre de workers peut causer des temps de résolution déséquilibrés pour chaque sous-problème. Ainsi, notre idée est d augmenter fortement le nombre de sous-problèmes considérés, d une manière similaire à celle de la méthode MapReduce. Aussi, nous définissons un nœud maître qui est en charge de la création et l envoi des sous-problèmes, en d autres termes de l opération Map. Ce nœud maître va également récupérer les calculs effectués par les workers, c est à dire de l opération Reduce. Avant d entrer dans les détails sur la mise en œuvre, nous établissons certaines propriétés. Durant la résolution d un problème, nous appellerons : le temps d activité d un worker la somme des temps de résolution d un worker. le temps d inactivité d un worker la différence entre le temps écoulé pour résoudre le problème en entier et les temps d activité des workers. Notre approche est principalement basée par la remarque suivante : Remarque Les temps d activités de tous les workers peuvent être bien équilibrés, même si le temps de résolution de chaque sous-problème n est pas bien équilibré Lorsqu un worker résout plusieurs sous-problèmes, ces derniers peuvent avoir des temps de résolution différents alors que la somme des ces temps reste égale à une valeur donnée. Considérons un problème dont le temps de résolution est de 100 secondes. Ce problème peut être découpé en sous-problèmes ayant des temps de résolution non balancés : 25, 20, 15, 10, 10, 10, 5, 5 secondes. Avec 4 workers, la répartition de charge pourrait être 25, , , , ce qui la rend bien balancée. La principale difficulté d une décomposition statique n est pas de définir des problèmes équivalents, mais d éviter d avoir des workers actifs pendant que d autres ont terminã c leur travail. Nous n avons pas besoin de connaître à l avance le temps de résolution de chaque sousproblème. Nous espérons juste que les workers auront des temps d activité équivalents. Pour atteindre cet objectif, il est important de décomposer les problèmes initiaux en un grand nombre de sous-problèmes pour trois raisons. nous augmentons ainsi nos chances d obtenir des temps d activités bien équilibrés pour les workers, car nous augmentons nos chances d être en mesure d obtenir une combinaison de valeurs menant à la même période d activité pour chaque worker. lorsque l espace de recherche tend à ne pas être équilibré, nous aurons des sous-problèmes qui prendront plus de temps à être résolus. En ayant un grand nombre de sousproblèmes, nous augmentons nos chances de découper ces sous-problèmes en plusieurs parties ayant des temps de résolution comparables et ainsi d obtenir à la fin une répartition de charge bien équilibrée des workers. quand un sous-problème a un temps de résolution plus long que n importe quel autre problème, nous avons une chance de voir cette différence moins importante lorsque ce sous-problème est découpé en plusieurs sousproblèmes. Dans ce cas, nous pouvons espérer réduire l importance du sous-problème. Considérons un problème qui nécessite 140 secondes à résoudre et que nous ayons 4 workers. Si nous divisons le problème en 4 sous-problèmes alors nous avons les temps de résolution suivants : 20, 80, 20, 20. Nous aurons besoin de 80 secondes pour résoudre ces sous-problèmes en parallèle. Par conséquent, nous gagnons un facteur 140/80 = Maintenant, si nous séparons à nouveau chaque sous-problème en 4 sousproblèmes, nous pourrons obtenir les sous-problèmes suivants représentés par leurs temps de résolution : ( )+(20, 10, 10, 40)+(2, 5, 10, 3)+(2, 2, 8, 8). Dans ce cas, nous pourrons avoir les assignements suivants : "worker1" : = 35 ; "worker2" : = 27 ; "worker3" : = 33 and "worker4" : = 45. Le temps écoulé est maintenant à 45 secondes et nous obtenons un facteur de gain à 140/45 = 3.1. En découpant encore les sous-problèmes, nous réduirons le temps de résolution moyen des sousproblèmes et nous espérons couper le sous-problème prenant 40 secondes en des sous-probllèmes prenant moins de temps. Notons que nous avons seulement peu de chance d augmenter le temps écoulé en décomposant plus le sous-problème. Propriété 1 Si un problème est découpé en plusieurs sous-problèmes dont le temps de résolution maximum est tmax, alors (i) le temps de résolution minimum du problème en entier est tmax (ii) le temps d inactivité maximum du worker est inférieur ou égal à tmax. preuve : (i) est clair. (ii) Supposons qu un worker W ait un temps d inactivité qui est supérieur à tmax.

4 Considérons le moment où W commence à attendre après son temps d activité. À ce moment, il n y a plus de sous-problèmes disponibles à résoudre, autrement W aurait été actif. De plus, un autre worker était déjà en charge du sous-problème le plus long à résoudre ou bien ce dernier a déjà été résolu. Ainsi, la durée maximale de la résolution de cet autre worker est inférieure à tmax. L approche work stealing a un contrôle précis et dynamique sur la façon dont l arbre de recherche est exploré et partagé. Cependant, notre méthode peut conduire à des résultats équivalents : Propriété 2 Il existe une décomposition du problème initial en sous-problèmes, qui est aussi bon que celui de n importe quelle méthode de work stealing. preuve : l approche work stealing est juste une décomposition dynamique, et nous pouvons utiliser cette décomposition dans notre méthode. Un avantage intéressant de notre méthode dans la pratique, est que nous pouvons tout simplement rejouer une résolution en parallèle en sauvegardant l ordre dans lequel les sous-problèmes ont été exécutées. Cela ne coûte presque rien et c est très utile dans le débogage d applications. Dans la section suivante, nous considérons diverses façons possibles pour définir les sous-problèmes. 3.2 Génération des sous-problèmes Même si ce n est pas vraiment important d avoir des sous-problèmes équivalents, il est généralement préférable d avoir des problèmes correspondant à la même taille de l espace de recherche. Cela ne signifie pas qu ils auront le même temps de résolution, mais il est recommandé d avoir de l homogénéité dans les problèmes générés. Supposons que nous voulions découper un problème en q problèmes disjoints. Une méthode simple peut être définie par la manière suivante : nous considérons tout ordre de variables x 1,...,x n. nous définissons par A k le produit cartésien D(x 1 )... D(x k ). nous calculons la valeur k de telle sorte que A k 1 < q A k. Chaque assignement de A k définit un sousproblème et donc A k est la décomposition recherché. Cette méthode fonctionne bien pour certains problèmes tels que les n-reines ou la règle de Golomb, mais elle est très mauvaise pour d autres problèmes, parce qu un grand nombre d assignements de A peut se révéler être trivialement inconsistant. Considérons par exemple que x 1, x 2 et x 3 possèdent trois valeurs {a, b, c} dans leurs domaines et qu on applique une contrainte alldiff sur ces trois variables. Le produit cartésien de domaines de ces variables contiennent 27 tuples. Parmi eux seulement 6 ((a, b, c), (a, c, b), (b, a, c),(b, c, a),(c, a, b), (c, b, a)) qui ne sont pas inconsistants avec la contrainte alldiff. Ainsi, seulement 6/27 = 2/9 des problèmes générés ne sont pas trivialement inconsistants. C est important de noter que la plupart des problèmes inconsistants pourrait ne jamais être considérée par une résolution séquentielle. Pour certains problèmes, nous observons que plus de 99% des problèmes générés sont détéctés inconsistants en lançant le mécanisme de propagation. Ainsi, nous présentons une autre méthode qui évite de tomber dans ce cas. Nous proposons de générer seulement les sousproblèmes qui ne sont pas détectés inconsistants par la propagation. Nous les appelons des sous-problèmes NDI. La génération de ces q sous-problèmes devient plus complexe car le nombre de sous-problèmes NDI peut ne pas être lié au produit catésien de certaines domaines. Un algorithme simple pourrait consister à effecturer un parcours en largeur (BFS), dans l arbre de recherche jusqu à que le nombre de sous-problèmes NDI désiré est atteint. Malheureusement, c est n est pas facile d exécuter efficacement une BFS en général car une BFS n est pas un algorithme incrémental comme un parcours en profondeur (DFS). Par conséquent, nous proposons d utiliser un parcours en profondeur bornée Depth-bounded Depth First Search (DBDFS) en anglais, qui est une DFS qui ne visite jamais les nœuds situés à une profondeur supérieure à une valeur donnée. Chaque branche d un arbre de recherche calculée par cette recherche définit un assignement. Nous noterons NDI k, l ensemble des assignements calculés pour une profondeur k. Pour générer q sous-problèmes, nous répétons la DBDFS jusqu à que nous atteignons un niveau k de telle sorte que NDI k 1 < q NDI k. Pour plus de commodité et de simplicité, nous utilisons un ordre statique des variables. Nous améliorons cette méthode de trois façons : (i) nous essayons d estimer quelques bonnes valeurs pour k afin d éviter de très répéter l algorithme DBDFS. Nous utilisons le produit cartésien. Par exemple, si pour une profondeur donnée u, nous générons seulement q/1000 sous-problèmes et si la taille des domaines des trois variables suivantes non assignées est 10, alors nous pouvons déduire que nous avons besoin d aller au moins à la profondeur u + 3. (ii) dans le but d éviter de répéter la même DFS pour les premières variables en répétant l algorithme DBDFS, nous sauvegardons les assignements calculés précédemment dans une contrainte de table. Plus précisément, si nous avons calculé NDI k alors nous utilisons une contrainte de table contenant tous ces assignements lorsque nous recherchons NDI l avec l > k.

5 (iii) Nous effectuons cette décomposition en parallèle car elle peut prendre un certain temps par rapport à l ensemble de la résolution du problème. Nous parallélisons notre algorithme de décomposition d une manière simple. Considérons que nous avons w workers. Nous recherchons w sous-problèmes NDI. Ensuite, chaque worker reçoit un de ces sous-problèmes et le décompose en q/w sous-problèmes NDI en utilisant notre algorithme. Le nœud maître rassemble tous les sous-problèmes calculées. Notons que l équilibrage de charge n est pas vraiment important car une fois qu un worker a terminé la décomposition d un sous-problème, il commence à résoudre les sous-problèmes disponibles. Il est également possible que le worker ne soit pas en mesure de générer q/w sousproblèmes car il peut résoudre le sous-problème donné par le nœud maître en effectuant la décomposition. Nous pourrons essayer d éviter ce cas mais nos expériences montrent que cela arrive très rarement et étant donné que nous recherchons un certain nombre de sous-problèmes à peu près égal à q, alors ce n est vraiment pas important. Par ailleurs, Nous verrons également que cette parallélisation n est pas nécessaire pour les meilleurs paramètres de notre méthode. 3.3 Implémentation MapReduceCP consiste principalement à définir les fonctions Map et Reduce de la méthode MapReduce pour les problèmes de satisfaction et d optimisation Problèmes de satisfaction La fonction Map function consiste à calculer une partition du problème initial P en un ensemble S de sous-problèmes. gérer l ensemble des sous-problèmes afin de les distribuer aux workers lorsqu ils demandent du travail. Le premier point est défini par l utilisation d un des algorithmes décrits précédemment, alors que le deuxième est implémenté par l utilisation d une structure de données de type FIFO (une queue par exemple). La fonction Reduce est assez simple : lors de la recherche d une solution, si une solution est trouvée, alors on stoppe l exploration de l arbre de recherche ; lors de la recherche de toutes les solutions, les solutions trouvées par les workers sont collectées par le nœud maître Problèmes d optimisation Dans le cas des problèmes d optimisation, nous devons gérer la meilleure valeur de l objectif trouvée durant la résolution. Ainsi, les fonctions Map et Reduce sont légèrement modifiées. La fonction Map consiste à calculer une partition du problème initial P en un ensemble S de sous-problèmes. gérer l ensemble des sous-problèmes et de la meilleure valeur de la fonction objective trouvée durant la résolution. Lorsqu un worker demande du travail, la fonction Map lui donne un sous-problème à résoudre. il lui donne églament la meilleure valeur de l objectif trouvée précédemment. Notons qu il n y a pas d autres communications, ceci se présente lorsqu un worker trouve une meilleure solution, les autres workers, qui sont en train de travailler, ne peuvent l utiliser pour améliorer la résolution de leurs problèmes courants. De même, si l absence de communication peut améliorer nos performances, cet aspect peut également conduire à une baisse de performance. Heureusement, nous n observons pas ce comportement dans la pratique. Nous pouvons voir ici un autre argument pour engendrer un grand nombre de sous-problèmes dans le cas des problèmes d optimisation : la résolution d un sousproblème doit être courte pour améliorer la transmission d une meilleure valeur de l objectif et d éviter d effectuer certains travaux qui auraient pu être ignorés avec une meilleure valeur objective. La fonction Reduce gère la valeur optimale trouvée par le worker qui sera ensuite utilisée par la fonction Map. 3.4 Taille de la partition Une question importante par rapport à la taille de la partition : combien de sous-problèmes devons nous générer? Il s agit principalement d une question expérimentale. Cependant, notons que, si nous voulons passer à l échelle alors ce nombre devrait être défini en fonction du nombre de workers qui sont impliqués. Plus précisément, il est plus cohérent d avoir q sous-problèmes par worker qu un total de q sous-problèmes. 4 Partie Expérimentale Machines Toutes les expériences ont été effectuées sur des machines Dell ayant quatre E processeurs Intel, ayant chacun 10 cœurs avec 256 Go de mémoire et fonctionnant sous Scientific Linux. En exécutant le même programme 10 fois dans chaque cœur de la machine, nous avons pu atteindre un facteur par rapport à une résolution séquentielle de Par conséquent, c est le gain maximum que nous pouvons espérer pour une machine. Nos expériences peuvent être reproduites en téléchargeant le programme MapReduceCP sur Linux à partir de ce lien [13].

6 Solveurs Nous avons implémenté notre méthode dans deux solveurs CP : or-tools rev2555 par Google et Gecode (http :// Notre code exécute seule- Protocole Expérimental ment trois opérations : soit il lit un fichier contenant un modèle FlatZinc ou soit le problème est directement modélisé par l API du solveur. il crée les "threads" et definit une instance du solveur dans chaque "thread". il calcule les sous-problèmes à générer, puis les fournit aux "threads" et rassemble les résultats. Pour chaque problème, nous allons soit chercher toutes les solutions des problèmes de satisfaction ou prouver l optimalité des problèmes d optimisation, ou résoudre les problèmes d optimisation dans leur ensemble (trouver la meilleure solution et de prouver son optimalité). Nous citerons le type de résolution que nous effectuons dans chaque expérience. Notons que les tests de performance d une méthode parallèle est plus complexe avec un problème d optimisation parce que la chance peut jouer un rôle. Il peut être avantage ou un inconvénient pour nous. Cependant, dans la vie réelle, les problèmes d optimisation sont très fréquents, il est donc important de tester notre méthode sur ces derniers. Instances sélectionnées Nous avons sélectionné un large éventail de problèmes qui sont représentatifs des types de problèmes résolus en CP. Certains viennent de la CSPLib et ont été modélisés par Hakank (http :// et d autres proviennent de la distribution minizinc (1.5 voir [11]). Nous avons sélectionné les instances qui ne sont ni très faciles (supérieur à 20 secondes en séquentiel), ni très longues à résoudre (inférieur à 700 secondes) avec le solveur Gecode. 1. Les exemples fournis par Hakank sont : golombruler- 13 ; magicsequence ; sportsleague-10 (10 équipes, nous énumérons toutes les solutions) ; warehouses (nombre de warehouses = 10, nombre de stores = 20 et un coût fixé = 180) ; setcovering (Placer les casernes de pompiers avec 80 villes et une distance minimale fixée à 24) ; allinterval-15 (le modèle proposé par Régin et Puget de la CSPLib est utilisé). 2. Les instances Flatzinc provenant de la distribution sont : 2DLevelPacking (5-20-6), depotplacement (att48-5 ; rat99-5), fastfood (58), openstacks (01-problem ;01-wbp ), sugiyama (2- g ), patternsetmining (k1-german-credit ; k1-segment ; k1-ionosphere), sb-sb ( ), quasigroup7-10, non-non-fast-6, radiation-03, bacp- 7, talent-scheduling-alt-film116. FIGURE 1 17-reines : performance en fonction de #sppw. Nous ne constatons plus la limite d un facteur de gain de 29. Tests Notons #sppw, le nombre de sous-problèmes par worker. Nous allons étudier les aspects suivants de notre méthode : 4.1 le facteur de gain par rapport aux autres décompositions statiques 4.2 le temps d inactivité des workers selon la valeur de #sspw 4.3 la difficulté des sous-problèmes engendrés. En particulier, nous allons examiner le ratio des sous-problèmes NDI. 4.4 l avantage de la parallélisation de la décomposition 4.5 l influence de #sspw sur le facteur d améliorations 4.6 l impact du nombre des workers sur la meilleure valeur de #sspw 4.7 sa performance par rapport au work stealing 4.8 l influence du solveur CP qui est utilisé 4.1 Comparaison avec la décomposition statique simple Nous considérons le problème des n-dames, parce que certaines méthodes proposées [7, 1] n ont pas été en mesure d observer un facteur de gain par rapport au séquentiel supérieur à 29 avec une décomposition statique simple des problèmes même en utilisant 64 machines (ou cœurs). La figure 1 montre que notre méthode obtient un meilleur gain lorsque #sppw est supérieur à 20 (Notons que, pour un ou deux sous-problèmes par worker, nous n obtenons pas un bon gain). La limite de ce gain (un ratio maximum à 29) décrit dans [1] disparait clairement. Nous utilisons la même strategie que dans [1]. Des résultats similaires sont obtenus pour ce problème avec d autres valeurs de n. Nous obtenons également un facteur de gain de 32 pour le problème d optimisation de la règle de Golomb de taille 13.

7 FIGURE 2 Pourcentage des sous-problèmes NDI générés par la méthode de décomposition simple FIGURE 4 Pourcentage du temps écoulé durant la décomposition. 4.3 Le temps d inactivité selon la valeur de #sppw La figure 3 montre que le temps d inactivité des workers diminue lorsque le nombre de sous-problèmes par worker est augmenté. En outre, il montre que la répartition de charge est bonne quand nous avons plus de 10 sousproblèmes par worker. Il faut faire attention à ces résultats : on ne peut pas dériver la durée totale de la résolution seulement avec le temps d inactivité car le temps de décomposition n est pas considéré. 4.4 Parallélisation de la décomposition FIGURE 3 Maximum du temps d inactivité des workers. 4.2 Ratio des sous-problèmes NDI La figure 2 montre le pourcentage des sous-problèmes NDI générés par la méthode de décomposition simple. Nous pouvons voir que ce nombre dépend fortement du nombre d instances considérées. Pour certaines instances, le nombre est proche de 100%, tandis que pour d autres il peut être vraiment proche de 0%, cela nous indique qu il y a un problème de décomposition. La moyenne commence à 65% et diminue en fonction du nombre de sous-problèmes puis termine à 10%. Par conséquent, pour certaines instances (comme les n-reines ou la règle de Golomb), la décomposition simple est une bonne méthode alors que pour d autres c est une très mauvaise approche et ne doit en aucun cas être utilisée. C est la raison pour laquelle nous avons développé la décomposition par DBDFS avec la méthode de propagation qui ne génère pas de problèmes qui ne sont pas NDI, donc pour le nombre de problèmes NDI générés est de 100%. La figure 4 compare le pourcentage de temps total nécessaire pour décomposer le problème lorsque seul le nœud maître effectue cette opération ou lorsque les workers sont également impliqués. Nous observons clairement que la parallélisation de la décomposition permet de gagner du temps, surtout pour un grand nombre de sous-problèmes par worker. 4.5 Influence du nombre de sous-problèmes à considérer La figure 5 décrit le facteur de gain par rapport à une résolution séquentielle obtenu par la méthode MapReduceCP en fonction du nombre de sous-problèmes pour le solveur Gecode. La meilleure valeur semble être autour de 30 sousproblèmes par worker. En d autres termes, nous proposons de commencer la décomposition avec q = 30w, où w est le nombre de workers. Pour cette valeur : pour 80% des problèmes considérés, le facteur de gain maximum est obtenu ; seuls 20% des problèmes pourraient être améliorés avec une autre valeur, mais jamais plus de 20%. Cela montre que cette valeur ne dépend pas du problème considéré.

8 FIGURE 6 Meilleure valeur de #sspw en fonction du nombre de workers. FIGURE 7 Résolution de tous les problèmes avec Gecode. Le nombre de workers est à 40 et nous fixons #sspw=30. FIGURE 5 Facteur de gain par rapport à une résolution séquentielle (speedup) en fonction du nombre de sousproblèmes pour trouver toutes les solutions des problèmes des satisfaction (au-dessus), pour trouver et prouver l oprimalit e des problèmes d optimisation (au milieu), et pour tous les problèmes (en bas). La réduction de la performance en augmentant la valeur de #sspw vient du fait que le processus de décomposition résout une partie croissante du problème, et ce processus est plus lent qu une procédure de résolution. Notons qu avec notre méthode, seuls 10% du temps de résolution est perdu si nous utilisons une décomposition séquentielle au lieu d une décomposition parallèle. 4.6 Nombre de workers et meilleure valeur de #sspw Pour savoir si le nombre de sous-problèmes dépend du nombre de workers, nous avons cherché la meilleure valeur de #sspw pour différents nombres de workers. La figure 6 montre les résutats obtenus. Il apparaît clairement que ces nombres ne sont pas corrélés et que la valeur 30 semble constante.

9 4.7 Comparaison avec le work stealing La Figure 7 présente une comparaison entre notre méthode et la méthode du work stealing disponible dans Gecode. Le facteur de gain moyen de la méthode work stealing est de 11,2 (14,5 pour les problèmes de satisfaction et 9,8 pour les problèmes d optimisation) alors qu avec l approche MapReduceCP, le facteur de gain est de 16,4 (20,0 pour les problèmes de satisfaction et 14,9 pour les problèmes d optimisation). Notre méthode est meilleure que le work stealing dans tous les cas sauf un. 4.8 Influence du solveur CP Nous avons également effectué des expériences en utilisant le solver or-tools. Avec or-tools, les facteurs de gain par rapport au séquentiel de notre méthode sont augmentés. Nous présentons les résultats dans la figure 8. Nous obtenons un facteur moyen d un gain de 14,4 pour le solveur de Gecode et 23,3 pour or-tools. Nous obtenons un facteur de gain moyen de 16,4 pour Gecode et de 23,3 pour or-tools. 5 Remerciements Nous tenons à remercier vivement Laurent Perron et Claude Michel pour leurs commentaires qui ont permis d améliorer cet article. 6 Conclusion Dans cet article, nous avons présenté MapReduceCP, une méthode simple pour résoudre les problèmes CP en parallèle, qui est basée sur le principe de la méthode MapReduce. Nous proposons de décomposer le problème initial en un ensemble de k sous-problèmes qui ne sont pas détectés inconsistants puis d envoyer ces problèmes aux workers afin d être résolu. Après quelques expérimentations, il apparaît que découper le problème initial en 30 sousproblèmes par worker, donne un facteur de gain moyen égal à 23 avec or-tools et 16, 4 avec Gecode tout en recherchant toutes les solutions ou alors trouver et prouver l optimalité sur une machine ayant 40 cœurs. La méthode est compétitive avec l approche work stealing. FIGURE 8 Résolution de tous les problèmes avec or-tools. Le nombre de workers est à 40 et nous fixons #sspw=30. Références [1] Lucas Bordeaux, Youssef Hamadi, and Horst Samulowitz. Experiments with massively parallel constraint solving. In Craig Boutilier, editor, IJCAI, pages , [2] Geoffrey Chu, Christian Schulte, and Peter J. Stuckey. Confidence-based work stealing in parallel constraint programming. In Ian P. Gent, editor, CP, volume 5732 of Lecture Notes in Computer Science, pages Springer, [3] Gérard Cornuéjols, Miroslav Karamanov, and Yanjun Li. Early estimates of the size of branch-and-bound trees. INFORMS Journal on Computing, 18(1) :86 96, [4] Jeffrey Dean and Sanjay Ghemawat. Mapreduce : Simplified data processing on large clusters. In OSDI, pages USENIX Association, [5] Ian P. Gent, Chris Jefferson, Ian Miguel, Neil C.A. Moore, Peter Nightingale, Patrick Prosser, and Chris Unsworth. A preliminary review of literature on parallel constraint solving,. In Proceedings PMCS-11 Workshop on Parallel Methods for Constraint Solving, [6] Youssef Hamadi. Optimal distributed arcconsistency. Constraints, 7 : , [7] Joxan Jaffar, Andrew E. Santosa, Roland H. C. Yap, and Kenny Qili Zhu. Scalable distributed depth-first search with greedy work stealing. In ICTAI, pages IEEE Computer Society, 2004.

10 [8] Philip Kilby, John K. Slaney, Sylvie Thiébaux, and Toby Walsh. Estimating search tree size. In AAAI, pages , [9] Donald E. Knuth. Estimating the efficiency of backtrack program. Mathematics of Computation, 29 : , [10] Laurent Michel, Andrew See, and Pascal Van Hentenryck. Transparent parallelization of constraint programming. INFORMS Journal on Computing, 21(3) : , [11] MiniZinc. http :// [12] Laurent Perron. Search procedures and parallelism in constraint programming. In Joxan Jaffar, editor, CP, volume 1713 of Lecture Notes in Computer Science, pages Springer, [13] Jean-Charles Régin. [14] Christian Schulte. Parallel search made simple. In University of Singapore, pages 41 57, [15] Feng Xie and Andrew J. Davenport. Massively parallel constraint programming for supercomputers : Challenges and initial results. In Andrea Lodi, Michela Milano, and Paolo Toth, editors, CPAIOR, volume 6140 of Lecture Notes in Computer Science, pages Springer, [16] Peter Zoeteweij and Farhad Arbab. A componentbased parallel constraint solver. In Rocco De Nicola, Gian Luigi Ferrari, and Greg Meredith, editors, COORDINATION, volume 2949 of Lecture Notes in Computer Science, pages Springer, 2004.

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

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

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

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

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard

Curriculum Vitae - Emmanuel Hebrard. Emmanuel Hebrard Emmanuel Hebrard Adresse 5 Tuckey Street Cork, Ireland emmanuel.hebrard@gmail.com http ://4c.ucc.ie/ ehebrard/home.html Adresse Professionnelle Cork Constraint Computation Centre Cork, Ireland Telephone

Plus en détail

RLBS: Une stratégie de retour arrière adaptative basée sur l apprentissage par renforcement pour l optimisation combinatoire

RLBS: Une stratégie de retour arrière adaptative basée sur l apprentissage par renforcement pour l optimisation combinatoire Actes JFPC 2015 RLBS: Une stratégie de retour arrière adaptative basée sur l apprentissage par renforcement pour l optimisation combinatoire Ilyess Bachiri 1,2 Jonathan Gaudreault 1,2 Brahim Chaib-draa

Plus en détail

Des contraintes globales prêtes à brancher

Des contraintes globales prêtes à brancher Actes JFPC 2009 Des contraintes globales prêtes à brancher Guillaume Richaud Xavier Lorca Narendra Jussien École des Mines de Nantes, LINA UMR CNRS 6241, F 44307 Nantes Cedex 3, France {guillaume.richaud,xavier.lorca,narendra.jussien}@emn.fr

Plus en détail

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires Julien Jorge, Xavier Gandibleux Laboratoire d Informatique de Nantes Atlantique

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

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

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

Apprentissage par renforcement (1a/3)

Apprentissage par renforcement (1a/3) Apprentissage par renforcement (1a/3) Bruno Bouzy 23 septembre 2014 Ce document est le chapitre «Apprentissage par renforcement» du cours d apprentissage automatique donné aux étudiants de Master MI, parcours

Plus en détail

CAC: Un algorithme d arc-consistance. configurable, générique et adaptatif.

CAC: Un algorithme d arc-consistance. configurable, générique et adaptatif. Actes JNPC 04 CAC: Un algorithme d arc-consistance configurable, générique et adaptatif Jean-Charles Régin ILOG Sophia Antipolis, Les Taissounières HB2, 1681 route des Dolines, 06560 Valbonne, France,

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci http://liris.cnrs.fr/hamamache.kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

Plus en détail

Big Data et Graphes : Quelques pistes de recherche

Big Data et Graphes : Quelques pistes de recherche Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université

Plus en détail

BI dans les nuages. Olivier Bendavid, UM2 Prof. A. April, ÉTS

BI dans les nuages. Olivier Bendavid, UM2 Prof. A. April, ÉTS BI dans les nuages Olivier Bendavid, UM2 Prof. A. April, ÉTS Table des matières Introduction Description du problème Les solutions Le projet Conclusions Questions? Introduction Quelles sont les défis actuels

Plus en détail

http://blog.khaledtannir.net

http://blog.khaledtannir.net Algorithme de parallélisations des traitements Khaled TANNIR Doctorant CIFRE LARIS/ESTI http://blog.khaledtannir.net these@khaledtannir.net 2e SéRI 2010-2011 Jeudi 17 mars 2011 Présentation Doctorant CIFRE

Plus en détail

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring Année académique 2006-2007 Professeurs : Marco Saerens Adresse : Université catholique de Louvain Information Systems

Plus en détail

Les mathématiques financières

Les mathématiques financières Chapitre 13 Les mathématiques financières Gérer ses finances personnelles ou jouer le rôle de conseiller dans ce domaine demande que l on ait une bonne connaissance des produits financiers et des marchés

Plus en détail

Introduction à MapReduce/Hadoop et Spark

Introduction à MapReduce/Hadoop et Spark 1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -

Plus en détail

Un propagateur basé sur les positions pour le problème d Open-Shop.

Un propagateur basé sur les positions pour le problème d Open-Shop. Actes JFPC 2007 Un propagateur basé sur les positions pour le problème d Open-Shop. Jean-Noël Monette Yves Deville Pierre Dupont Département d Ingénierie Informatique Université catholique de Louvain {jmonette,yde,pdupont}@info.ucl.ac.be

Plus en détail

Conception de réseaux de télécommunications : optimisation et expérimentations

Conception de réseaux de télécommunications : optimisation et expérimentations Conception de réseaux de télécommunications : optimisation et expérimentations Jean-François Lalande Directeurs de thèse: Jean-Claude Bermond - Michel Syska Université de Nice-Sophia Antipolis Mascotte,

Plus en détail

SQL Data Export for PS/PSS

SQL Data Export for PS/PSS Version 2.3.5 MANUEL D INSTRUCTIONS (M98232701-02-13B) CIRCUTOR, SA SOMMAIRE 1.- INSTALLATION DU LOGICIEL SQL DATA EXPORT... 3 1.1.- ACTIVER CONNEXIONS A DISTANCE DU SERVEUR SQL SERVER... 14 1.2.- DESINSTALLER

Plus en détail

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments Recherche Opérationnelle Optimisation combinatoire : Applications et compléments Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 17 février 2014 Plan de

Plus en détail

Stratégie de recherche adaptative en programmation par contrainte

Stratégie de recherche adaptative en programmation par contrainte Université Paul Sabatier École Nationale de l Aviation Civile Master 2 Recherche Informatique et Télécommunication parcours Intelligence Artificielle Simon Marchal Stratégie de recherche adaptative en

Plus en détail

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop

Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop Utilisation du backtrack intelligent dans un branch-and-bound Application au problème d Open-Shop Narendra Jussien et Christelle Guéret École des Mines de Nantes 4 rue Alfred Kastler BP 20722 F-44300 Nantes

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

Programmation Par Contraintes

Programmation Par Contraintes Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien

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

Recherche d un plus grand sous-graphe commun par décomposition du graphe de compatibilité

Recherche d un plus grand sous-graphe commun par décomposition du graphe de compatibilité Actes JFPC 2015 Recherche d un plus grand sous-graphe commun par décomposition du graphe de compatibilité Maël Minot 1,2 Samba Ndojh NDIAYE 1,3 Christine SOLNON 1,2 1 Université de Lyon - LIRIS 2 INSA-Lyon,

Plus en détail

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production Revue des Sciences et de la Technologie RST- Volume 4 N 1 /janvier 2013 Etude d un cas industriel : Optimisation de la modélisation de paramètre de production A.F. Bernate Lara 1, F. Entzmann 2, F. Yalaoui

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

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

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud

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

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

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Etude d Algorithmes Parallèles de Data Mining

Etude d Algorithmes Parallèles de Data Mining REPUBLIQUE TUNISIENNE MINISTERE DE L ENSEIGNEMENT SUPERIEUR, DE LA TECHNOLOGIE ET DE LA RECHERCHE SCIENTIFIQUE UNIVERSITE DE TUNIS ELMANAR FACULTE DES SCIENCES DE TUNIS DEPARTEMENT DES SCIENCES DE L INFORMATIQUE

Plus en détail

Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012. Better Match, Faster Innovation

Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012. Better Match, Faster Innovation Better Match, Faster Innovation Rencontre sur la thématique du Calcul Haute Performance - 13 juin 2012 Meeting on the theme of High Performance Computing TABLE DES MATIÈRES Qu est ce qu un imatch? STI

Plus en détail

CONSEIL DE COORDIN AT I O N DU PROGRAM M E DE L ONUSID A

CONSEIL DE COORDIN AT I O N DU PROGRAM M E DE L ONUSID A CONSEIL DE COORDIN AT I O N DU PROGRAM M E DE L ONUSID A ONUSIDA/CCP (36)/15.12 Date de publication : 24 juin 2015 TRENTE-SIXIÈME RÉUNION Date : 30 juin - 2 juillet 2015 Lieu : Salle du conseil exécutif,

Plus en détail

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT)

OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT) OPTIMISATION DE LA MAINTENANCE DES EQUIPEMENTS DE MANUTENTION DU TERMINAL A CONTENEURS DE BEJAIA (BMT) LAGGOUNE Radouane 1 et HADDAD Cherifa 2 1,2: Dépt. de G. Mécanique, université de Bejaia, Targa-Ouzemour

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

Plus en détail

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures) CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE Cinquième épreuve d admissibilité STATISTIQUE (durée : cinq heures) Une composition portant sur la statistique. SUJET Cette épreuve est composée d un

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

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

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit

Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit Modèles et algorithmes pour le conseil et la gestion des préférences en configuration de produit Revue à mi parcours du projet ANR Blanc «BR4CP» Hélène Fargier - IRIT Résolution interactive Le «catalogue»

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

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

Etude comparative de différents motifs utilisés pour le lancé de rayon

Etude comparative de différents motifs utilisés pour le lancé de rayon Etude comparative de différents motifs utilisés pour le lancé de rayon Alexandre Bonhomme Université de Montréal 1 Introduction Au cours des dernières années les processeurs ont vu leurs capacités de calcul

Plus en détail

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair Raja Chiky, Bruno Defude, Georges Hébrail GET-ENST Paris Laboratoire LTCI - UMR 5141 CNRS Département Informatique et Réseaux

Plus en détail

Programmation par contraintes. Laurent Beaudou

Programmation par contraintes. Laurent Beaudou Programmation par contraintes Laurent Beaudou On se trouve où? Un problème, une solution : la solution est-elle une solution du problème? simulation, vérification 2 On se trouve où? Un problème, une solution

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Une méthode d apprentissage pour la composition de services web

Une méthode d apprentissage pour la composition de services web Une méthode d apprentissage pour la composition de services web Soufiene Lajmi * Chirine Ghedira ** Khaled Ghedira * * Laboratoire SOIE (ENSI) University of Manouba, Manouba 2010, Tunisia Soufiene.lajmi@ensi.rnu.tn,

Plus en détail

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique

Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique Introduction à la Programmation par Contraintes (PPC) Ruslan Sadykov LIX, École Polytechnique Contenu Introduction Modélisation Problèmes de satisfaction des contraintes Exemples des modèles PPC simples

Plus en détail

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Limitations of the Playstation 3 for High Performance Cluster Computing

Limitations of the Playstation 3 for High Performance Cluster Computing Introduction Plan Limitations of the Playstation 3 for High Performance Cluster Computing July 2007 Introduction Plan Introduction Intérêts de la PS3 : rapide et puissante bon marché L utiliser pour faire

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

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

Précision d un résultat et calculs d incertitudes

Précision d un résultat et calculs d incertitudes Précision d un résultat et calculs d incertitudes PSI* 2012-2013 Lycée Chaptal 3 Table des matières Table des matières 1. Présentation d un résultat numérique................................ 4 1.1 Notations.........................................................

Plus en détail

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1 Les clusters Linux 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com white-paper-cluster_fr.sxw, Version 74 Page 1 Table des matières Introduction....2 Haute performance (High

Plus en détail

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5 Modélisation de la performance et optimisation d un algorithme hydrodynamique de type Lagrange-Projection sur processeurs multi-cœurs T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet

Plus en détail

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007 NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation

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

Manipulateurs Pleinement Parallèles

Manipulateurs Pleinement Parallèles Séparation des Solutions aux Modèles Géométriques Direct et Inverse pour les Manipulateurs Pleinement Parallèles Chablat Damien, Wenger Philippe Institut de Recherche en Communications et Cybernétique

Plus en détail

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1 Big Data Cyril Amsellem Consultant avant-vente 16 juin 2011 Talend 2010 1 Big Data Architecture globale Hadoop Les projets Hadoop (partie 1) Hadoop-Core : projet principal. HDFS : système de fichiers distribués

Plus en détail

Programmation parallèle et distribuée

Programmation parallèle et distribuée Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution

Plus en détail

Théorie Financière 2. Valeur actuelle Evaluation d obligations

Théorie Financière 2. Valeur actuelle Evaluation d obligations Théorie Financière 2. Valeur actuelle Evaluation d obligations Objectifs de la session. Comprendre les calculs de Valeur Actuelle (VA, Present Value, PV) Formule générale, facteur d actualisation (discount

Plus en détail

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce Algorithmes : K-means et Apriori Maria Malek LARIS-EISTI maria.malek@eisti.fr 1 Cloud Computing et MapReduce

Plus en détail

Aspects théoriques et algorithmiques du calcul réparti L agglomération

Aspects théoriques et algorithmiques du calcul réparti L agglomération Aspects théoriques et algorithmiques du calcul réparti L agglomération Patrick CIARLET Enseignant-Chercheur UMA patrick.ciarlet@ensta-paristech.fr Françoise LAMOUR franc.lamour@gmail.com Aspects théoriques

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

VIII- Circuits séquentiels. Mémoires

VIII- Circuits séquentiels. Mémoires 1 VIII- Circuits séquentiels. Mémoires Maintenant le temps va intervenir. Nous avions déjà indiqué que la traversée d une porte ne se faisait pas instantanément et qu il fallait en tenir compte, notamment

Plus en détail

Les débats sur l évolution des

Les débats sur l évolution des D o c u m e n t d e t r a v a i l d e l a B r a n c h e R e t r a i t e s d e l a C a i s s e d e s d é p ô t s e t c o n s i g n a t i o n s n 9 8-0 7 C o n t a c t : La u re nt V e r n i è r e 0 1 4

Plus en détail

BIG Data et R: opportunités et perspectives

BIG Data et R: opportunités et perspectives BIG Data et R: opportunités et perspectives Guati Rizlane 1 & Hicham Hajji 2 1 Ecole Nationale de Commerce et de Gestion de Casablanca, Maroc, rguati@gmail.com 2 Ecole des Sciences Géomatiques, IAV Rabat,

Plus en détail

Application de K-means à la définition du nombre de VM optimal dans un cloud

Application de K-means à la définition du nombre de VM optimal dans un cloud Application de K-means à la définition du nombre de VM optimal dans un cloud EGC 2012 : Atelier Fouille de données complexes : complexité liée aux données multiples et massives (31 janvier - 3 février

Plus en détail

Leçon N 4 : Statistiques à deux variables

Leçon N 4 : Statistiques à deux variables Leçon N 4 : Statistiques à deux variables En premier lieu, il te faut relire les cours de première sur les statistiques à une variable, il y a tout un langage à se remémorer : étude d un échantillon d

Plus en détail

Techniques d optimisation des requêtes dans les data warehouses

Techniques d optimisation des requêtes dans les data warehouses Techniques d optimisation des requêtes dans les data warehouses Ladjel Bellatreche LISI/ENSMA Téléport2-1, Avenue Clément Ader 86960 Futuroscope - FRANCE bellatreche@ensma.fr Résumé Un entrepôt de données

Plus en détail

Rapport d'analyse des besoins

Rapport d'analyse des besoins Projet ANR 2011 - BR4CP (Business Recommendation for Configurable products) Rapport d'analyse des besoins Janvier 2013 Rapport IRIT/RR--2013-17 FR Redacteur : 0. Lhomme Introduction...4 La configuration

Plus en détail

NOTE SUR LA MODELISATION DU RISQUE D INFLATION

NOTE SUR LA MODELISATION DU RISQUE D INFLATION NOTE SUR LA MODELISATION DU RISQUE D INFLATION 1/ RESUME DE L ANALYSE Cette étude a pour objectif de modéliser l écart entre deux indices d inflation afin d appréhender le risque à très long terme qui

Plus en détail

IFT3245. Simulation et modèles

IFT3245. Simulation et modèles IFT 3245 Simulation et modèles DIRO Université de Montréal Automne 2012 Tests statistiques L étude des propriétés théoriques d un générateur ne suffit; il estindispensable de recourir à des tests statistiques

Plus en détail

Solutions de stockage réseau

Solutions de stockage réseau Solutions de stockage réseau Adrien Waksberg Jonathan Demmerle Sofiane El Harsal Mohamed Bennoiken 28 mars 2012 Sommaire Introduction Sommaire Le projet Le Grid 5000 1 Introduction 2 3 4 5 6 Sommaire Le

Plus en détail

L ESCALIER UNE ACTIVITÉ SUR LES MULTIPLES ET DIVISEURS EN FIN DE PRIMAIRE EN SUISSE ROMANDE

L ESCALIER UNE ACTIVITÉ SUR LES MULTIPLES ET DIVISEURS EN FIN DE PRIMAIRE EN SUISSE ROMANDE L ESCALIER UNE ACTIVITÉ SUR LES MULTIPLES ET DIVISEURS EN FIN DE PRIMAIRE EN SUISSE ROMANDE Lucie PASSAPLAN Sébastien TONINATO * Résumé Ce texte s inscrit dans le cadre d une recherche en didactique des

Plus en détail

NON-LINEARITE ET RESEAUX NEURONAUX

NON-LINEARITE ET RESEAUX NEURONAUX NON-LINEARITE ET RESEAUX NEURONAUX Vêlayoudom MARIMOUTOU Laboratoire d Analyse et de Recherche Economiques Université de Bordeaux IV Avenue. Leon Duguit, 33608 PESSAC, France tel. 05 56 84 85 77 e-mail

Plus en détail

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes

Modèle de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes de troncature gauche : Comparaison par simulation sur données indépendantes et dépendantes Zohra Guessoum 1 & Farida Hamrani 2 1 Lab. MSTD, Faculté de mathématique, USTHB, BP n 32, El Alia, Alger, Algérie,zguessoum@usthb.dz

Plus en détail

Probabilités sur un univers fini

Probabilités sur un univers fini [http://mp.cpgedupuydelome.fr] édité le 10 août 2015 Enoncés 1 Proailités sur un univers fini Evènements et langage ensemliste A quelle condition sur (a,, c, d) ]0, 1[ 4 existe-t-il une proailité P sur

Plus en détail

Windows Internet Name Service (WINS)

Windows Internet Name Service (WINS) Windows Internet Name Service (WINS) WINDOWS INTERNET NAME SERVICE (WINS)...2 1.) Introduction au Service de nom Internet Windows (WINS)...2 1.1) Les Noms NetBIOS...2 1.2) Le processus de résolution WINS...2

Plus en détail

Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre.

Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre. Contrôle par commande prédictive d un procédé de cuisson sous infrarouge de peintures en poudre. Isabelle Bombard, Bruno da Silva, Pascal Dufour *, Pierre Laurent, Joseph Lieto. Laboratoire d Automatique

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

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

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

UNE VITESSE DE SAUVEGARDE EXCEPTIONNELLE

UNE VITESSE DE SAUVEGARDE EXCEPTIONNELLE UNE VITESSE DE SAUVEGARDE EXCEPTIONNELLE Commentaires des clients sur Veeam Backup & Replication 4.0 Fruit d un travail continu de recherche et développement, et en réponse aux commentaires des clients,

Plus en détail

Probabilités conditionnelles Exercices corrigés

Probabilités conditionnelles Exercices corrigés Terminale S Probabilités conditionnelles Exercices corrigés Exercice : (solution Une compagnie d assurance automobile fait un bilan des frais d intervention, parmi ses dossiers d accidents de la circulation.

Plus en détail

Des caisses diversifiées et gérées professionnellement. Les Caisses privées

Des caisses diversifiées et gérées professionnellement. Les Caisses privées Des caisses diversifiées et gérées professionnellement Les Caisses privées 3 La simplicité rendue accessible 4 Qu est-ce qu une Caisse privée? 6 La diversification, ou comment réduire votre risque 8 Une

Plus en détail

Théorie de la mesure. S. Nicolay

Théorie de la mesure. S. Nicolay Théorie de la mesure S. Nicolay Année académique 2011 2012 ii Table des matières Introduction v 1 Mesures 1 1.1 Sigma-algèbres................................. 1 1.2 Mesures.....................................

Plus en détail

Virtualiser ou ne pas virtualiser?

Virtualiser ou ne pas virtualiser? 1 Virtualiser ou ne pas virtualiser? C est la première question à laquelle vous devrez répondre par vous-même avant d investir une quantité significative de temps ou d argent dans un projet de virtualisation.

Plus en détail

Mobile OGSI.NET: Grid Computing on Mobile Devices

Mobile OGSI.NET: Grid Computing on Mobile Devices Mobile OGSI.NET: Grid Computing on Mobile Devices David C.Chu Université de Californie, Berkeley Marty Humphrey Université de Virginie Publié en Novembre 2004 lors de la 5ième conférence IEEE/ACM International

Plus en détail