New parallel algorithms for combinatorial optimization
Transcription
New parallel algorithms for combinatorial optimization
Ph.D. Proposal for 2013 New parallel algorithms for combinatorial optimization Ph.D. Director NAME, Surname : MONFROY, Éric Research Team : TASC Laboratory : LINA (UMR 6241) Affiliation : Université de Nantes E-mail : [email protected] Advising rate : 40% Current Ph.D. Students : 0 Ph.D. Advisor NAME, Surname : RICHOUX, Florian Research Team : TASC Laboratory : LINA (UMR 6241) Affiliation : Université de Nantes E-mail : [email protected] Advising rate : 60% Current Ph.D. Students : 0 Possible funding : CNRS-Région, MESR 1 Abstract New parallel algorithms for combinatorial optimization The evolution of computer architecture is leading us toward massively multi-core computers for tomorrow, composed of thousands of computing units. However nowadays, we do not know how to design algorithms able to manage efficiently such a computing power. In particular, this is true for combinatorial optimization algorithms, like algorithms solving constraint-based problems. There exists several techniques for solving constraint-based problems : constraint programming, linear programming, Boolean satisfaction methods and local search methods to give an non-exhaustive list. The latter is often among the most efficient techniques to solve large size problems. Nowadays and up to our knowledge, there exists only one algorithm (Adaptive Search, a local search algorithm) showing very good performances scaling to thousands of cores. However its parallel scheme does not include inter-processes cooperative communications. Moreover, the rising of more and more complex algorithms leads to an number of parameters which become intractable to manage by hand, and parallel algorithms emphasize this trend. In this context, this Ph.D. topic has two major objectives : – To propose and implement local search methods scalable over thousands of cores with cooperative and communicating processes. Beyond this objective, there is another one : to define a “portfolio” approach, having simultaneous processes of different nature (i.e., different algorithms, or the same algorithm with different parameters) exploring the search space. – To develop and implement auto-tuning mechanisms for parallel local search methods, i.e., mechanisms allowing to automatically manage parameters (through machine learning techniques), and to include them into local search methods developed during this thesis. Key words : Constraint-based problems, parallel local search algorithms, massively parallel architectures, auto-tuning, machine learning. 2 Résumé Nouveaux algorithmes parallèles d’optimisation combinatoire L’évolution de l’architecture des ordinateurs est telle que l’ordinateur commun de demain sera massivement multi-cœurs, disposant de plusieurs milliers d’unités de calcul. Or, nous ne savons pas aujourd’hui concevoir des algorithmes tirant efficacement partie de cette puissance. Ceci est vrai en particulier pour les algorithmes d’optimisation combinatoire, comme les algorithmes de résolution de problème de contraintes. Il existe plusieurs techniques pour résoudre les problèmes de contraintes : la programmation par contrainte, la programmation linéaire, les méthodes de satisfaction booléenne et les méthodes de recherche locale pour donner une liste non-exhaustive. Ces dernières sont bien souvent parmi les techniques les plus efficaces pour résoudre les problèmes de grande taille. De nos jours et à notre connaissance, il n’exite qu’un seul algorithme (Adaptive Search, un algorithme de recherche locale) ayant de très bonnes performances passant à l’échelle des milliers de cœurs. Toutefois le schéma parallèle de cet algorithme ne comprend pas de système de communications coopérantes inter-processus. De plus, la montée en puissance d’algorithmes de plus en plus complexes entraîne un nombre de paramètres qui est devenu intraîtable manuellement, et les algorithmes parallèles ne font qu’accentuer la tendance. Dans ce contexte, cette thèse se voit assigner deux objectifs majeurs : – Proposer et implémenter des méthodes scalables de recherche locale sur plusieurs milliers de cœurs avec des processus communiquants et coopérants. Derrière cet objectif s’en cache un autre : définir une approche “portfolio”, consistant à avoir simultanément des processus de nature différentes (c’est-à-dire différents algorithmes, ou encore le même algorithme avec différents paramètres) explorant l’espace de recherche. – développer et implémenter des mécanismes d’auto-tuning pour les algorithmes de recherche locale, c’est-à-dire des mécanismes permettant d’automatiser le paramétrage (à travers des méthodes d’apprentissage), et les inclure dans les méthodes de recherche locale parallèles proposées pendant la thèse. Mots clés : Problèmes de contraintes, algorithmes parallèles de recherche locale, architectures massivement parallèle, auto-tuning, méthodes d’apprentissage. 3 1 1.1 Contexte Optimisation combinatoire L’optimisation combinatoire consiste à trouver une ou toutes les solutions possibles des problèmes dans lesquels les valeurs des variables appartiennent à un domaine discret, et l’objectif est de trouver la meilleure solution possible vérifiant un critère global (dite fonction objective). La programmation linéaire, l’allocation des ressources, l’ordonnancement de tâches, le problème du voyageur de commerce, le problème du sac à dos, etc, sont des exemples bien connus d’optimisation combinatoire. Un autre exemple bien connu : les problèmes de satisfaction de contraintes (csp), sujet de recherche très actif développé par le domaine de l’intelligence artificielle depuis le milieu des années 70 et puis comme paradigme de programmation depuis la fin des années 80. La satisfaction de contraintes peut être considérée comme une branche de l’optimisation combinatoire dans laquelle la fonction objective est de réduire au minimum le nombre de contraintes violées : une solution est donc obtenue lorsque la fonction a une valeur nulle. Les problèmes d’optimisation combinatoire venant du milieu industriel et du “monde réel” sont de plus en plus complexes et de grandes tailles. La puissance qu’offre les architectures massivement parallèles nous permet de traiter plus rapidement ces problèmes, voire tout simplement d’être en mesure de les traiter. Mais cette évolution d’architecture est veine si l’algorithmique n’évolue pas en même temps : la conception et l’implantation d’un algorithme tirant parti de la puissance du massivement parallèle doivent être abordées d’une manière très différente du raisonnement séquentiel auquel les chercheurs en informatique sont habitués. 1.2 Machines parallèles Tout le monde connaît la loi de Moore, stipulant que la puissance des ordinateurs est doublée tous les 18 mois. Pour être plus précis, la loi de Moore prédisait le dédoublement tous les 18 mois du nombre de transistors que l’on peut inclure pour un coût raisonnable dans un circuit imprimé. Jusqu’au milieu des années 2000, ce dédoublement se vérifiait par la fréquence des processeurs multipliée par 2 tous les 18 mois. Mais entre 2002 et 2004, cette augmentation régulière s’est heurtée à des problèmes et limitations physiques, puisque la puissance électrique dissipée est égale au cube de la fréquence, demandant ainsi de trop importants efforts de refroidissement sans parler de la consommation électrique exorbitante. Malgré le plafonnement de la fréquence des processeurs, la loi de Moore est toujours vérifiée aujourd’hui : au lieu d’augmenter la fréquence des processeurs, les constructeurs se sont orientés vers des architectures multi-cœurs, où un “cœur” est une unité de calcul. Il est maintenant banal d’avoir deux ou quatre, voire huit cœurs dans son ordinateur portable. C’est clairement ce choix technologique qui a été fait pour les ordinateurs à venir : cette année, Intel devrait commercialiser son nouveau processeurs Knight’s Corner contenant 50 cœurs, et on sait aujourd’hui qu’il est techniquement possible de concevoir des micro-processeurs de plusieurs milliers de cœurs [DAC07]. Pourtant, encore peu d’algorithmes ont été conçu pour tirer partie de la puissance de cette architecture particulière, notamment en ce qui concerne les problèmes de résolution de contraintes. 4 Le schéma suivant indique la progression de la puissance de calcul (mesurée en flops, c’est-à-dire le nombre d’opérations à virgule flottante par seconde) des 500 meilleurs super-calculateurs au monde. Ce schéma nous aide à comprendre que l’ordinateur portable dans 10 ans correspondra, en terme de puissance, à la moyenne des super-calculateurs d’aujourd’hui. C’est actuellement le cas : la moyenne des 500 meilleurs super-calculateurs en 2002 correspondait à environ 4 TFlops, ce que dépasse largement de nos jours une carte graphique à 600e. . . L’ordinateur commun de demain correspondra à nos super-calculateurs d’aujourd’hui, et cette évolution passera par les architectures multi-cœurs. Il devient urgent, aujourd’hui, d’être capable de concevoir et d’implémenter des algorithmes parallèles prévus pour fonctionner sur 1000, 10.000, 100.000 cœurs et profiter des avantages qu’offre cette architecture. Nous invitons également le lecteur à lire la note de veille de juillet 2010 du Conseil d’analyse stratégique sur l’importance des efforts à fournir autour des super-calculateurs : http://www.strategie.gouv.fr/system/files/noteveille188_ supercalculateurs.pdf. 2 2.1 Objectifs Méthodes de recherche locale massivement parallèle Il existe plusieurs techniques pour résoudre les csp : la programmation par contrainte, la programmation linéaire, les méthodes de satisfaction booléenne (sat) et les métaheuristiques pour donner une liste non-exhaustive. Ces dernières sont essentiellement constituées des méthodes local search, techniques bien souvent parmi les plus efficaces pour résoudre les problèmes de grande taille. Le but de cette thèse sera de proposer et d’implémenter de nouveaux algorithmes de recherche locale pour la résolution de csp sur des architectures massivement parallèles. 5 En effet, très peu d’implémentations de solveurs efficaces de contraintes sur des machines parallèles ont été reportées. Par exemple, [CP99a] ou [CP99b] pour des architectures à mémoire partagée jusqu’à 8 cœurs. Le système Comet [CBLS] a été parallélisé pour de petits clusters de PCs, à la fois pour son solver de recherche locale [CP06] et son solveur de contraintes par propagation [CP07]. De plus récentes expérimentations ont été conduites jusqu’à 12 cœurs [COR09]. D’une manière globale, les solveurs csp ou sat tendent à voir leur performance stagner dès plusieurs dizaines de cœurs, et plus aucun gain significatif n’est observé au delà de 32 cœurs. À souligner toutefois la méthode de branch-and-bound de Gendron et al. [OR94], sans communication parallèle, qui obtient des accélérations parallèles jusqu’à quelques centaines de cœurs, mais les gains ne vont pas au delà. Il n’existe à notre connaissance qu’un seul algorithme de satisfaction de contraintes déployé avec succès sur plusieurs milliers de cœurs, Adaptive Search [PPoPP12, LION6, PCO12, CCRDA], atteignant des accélérations quasi-linéaires observées jusqu’à 8.192 cœurs. Cependant ce dernier est basé sur des processus indépendants, c’est-à-dire noncoopératifs, et aucune autre méthode algorithmique apportant de la coopération ne passe à l’échelle au delà de quelques dizaines de cœurs. Le premier objectif de cette thèse est de proposer des méthodes scalables sur plusieurs milliers de cœurs avec des processus communiquants et coopérants. Pour ce faire, une première approche consisterait à reprendre des concepts de la méthodes Adaptive Search et de les faire évoluer dans la perspective d’avoir des processus coopérants. Une deuxième approche encore trop peu exploitée dans la littérature est l’approche portfolio, consistant à avoir simultanément des processus de nature différente (différents algorithmes, ou encore le même algorithme avec différents paramètres) explorant l’espace de recherche. La coopération peut alors se présenter ainsi : un processus ne progressant plus dans l’espace de recherche (c’est-à-dire, piégé dans un minimum local) pourrait demander la relève à un processus de nature différente, continuant ainsi l’exploration. En résumé : 1. Proposer et implémenter de nouvelles méthodes coopératives de recherche locale parallèles scalables sur plusieurs milliers de cœurs. 2. Proposer et implémenter une approche globale dite “portfolio” permettant la coopération de processus de nature différente. 2.2 Auto-tuning Un autre défi accompagne les méta-heuristiques modernes : le nombre de paramètres de ces algorithmes de plus en plus complexes est tel qu’il ne devient plus traitable manuellement, et cet aspect est fortement aggravé avec les méthodes parallèles, apportant de nouveaux paramètres. Depuis ces dernières années, de nombreux efforts ([Hoos, ES]) ont été fait pour apporter une gestion automatique de ces paramètres, notamment à travers des mécanismes d’apprentissage. Le livre [HMS] compile les derniers travaux majeurs en date. À notre connaissance, peu de méthodes ont été proposées à ce jour pour les algorithmes massivement parallèles. Un second axe de recherche s’orientera autour du développement et de l’implémentation de mécanismes d’auto-tuning pour les algorithmes parallèles, mécanismes qui seront 6 inclus dans les méthodes de recherche locale parallèles proposées pendant la thèse. En résumé : 1. Définir des mécanismes d’auto-tuning adaptés aux algorithmes de recherche locale parallèles développés durant la thèse. 3 Organisation 3.1 Encadrement Cette thèse sera encadrée par Éric Monfroy, Professeur à l’Université de Nantes et Florian Richoux, recruté en septembre 2012 en temps que Maître de Conférences à l’Université de Nantes. Les deux chercheurs appartiennent à l’équipe TASC du LINA, et n’encadrent actuellement aucun doctorant. L’encadrement s’effectuera à 40% par Éric Monfroy et 60% par Florian Richoux. Éric Monfroy est spécialiste de la programmation par contrainte, de la satisfaction booléenne et des csp, ainsi que des méthodes de recherche autonome comprenant l’autotuning. Florian Richoux est spécialiste des méta-heuristiques parallèles et a contribué au développement et à l’implémentation de la version parallèle de Adaptive Search. 3.2 Candidat Aucun candidat n’est pressenti pour le moment. Le candidat devra avoir effectué un stage de recherche de qualité dans le domaine de l’optimisation (au sens large, de préférence sur le thème de la programmation par contraintes), et avoir de très solides compétences en développement. 3.3 Matériel Pour cette thèse, il sera indispensable d’avoir accès à des super-calculateurs. Pour cela, nous avons un accès permanent à la grille de calcul Grid’5000 nous permettant d’avoir à tout moment plusieurs centaines voire milliers de cœurs à disposition. Il est également envisageable d’avoir un accès au super-calculateur Fujitsu FX10 disposant de 76.000 cœurs à l’Université de Tokyo, avec qui nous avons d’étroites collaborations. Enfin, nous avons obtenu par le passé des accès sur projets scientifiques (donc accès gratuits) à l’IBM Bluegene/P de l’IDRIS en France (40,000 cœurs) et du Jülich Centre en Allemagne (300,000 cœurs), ainsi qu’au Bull CURIE du CEA (80,000 cœurs). Pour les besoins de cette thèse, nous prévoyons la demande de nouveaux accès aux machines du parc français DARI et européen PRACE. 3.4 Programme prévisionnel – Mois 0 → Mois 9 : le ou la doctorant(e) devra se familiariser avec le domaine et le code existant de Adaptive Search qui constituera un point de départ. – 9 → 12 : premières méthodes parallèles de recherche locale devront être proposées. – 12 → 18 : premières implémentations et expérimentations devront être conduites. 7 – 18 → 21 : le ou la doctorant(e) devra réfléchir à des mécanismes d’auto-tuning à intégrer à ses algorithmes. – 21 → 30 : implémentation et les expérimentations de ces mécanismes, et perfectionnement de ce qui a été développé au cours de la deuxième année. – 30 → 36 : rédaction du mémoire de thèse, commencée en parallèle tout au long de la thèse. Nous comptons publier les résultats principalement dans des journaux et conférences en intelligence artificielle (Artificial Intelligence, IJCAI, AAAI, ECAI, . . .), en parallélisme (Journal of Parallel Computing, PPoPP, IPDPS, . . .) et en programmation par contraintes (Journal of Constraints, Journal of Heuristics, CP, . . .). 8 Références [DAC07] S. Borkar. Thousand Core Chips - A Technology Perspective. IEEE Proceedings of the 44th Design Automation Conference (DAC 2007), pp 746–749, San Diego, USA, 2007. IEEE. [CCRDA] Y. Caniou, Ph. Codognet, F. Richoux, D. Diaz et S. Abreu. Large-Scale Parallelism for Constraint-Based Local Search. À paraître. [PPoPP12] Y. Caniou, D. Diaz, F. Richoux, Ph. Codognet et S. Abreu. Performance Analysis of Parallel Constraint-Based Local Search. 17th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’12), ACM Press. [CP99a] G. Chu, Ch. Schulte et P. Stuckey Confidence-based work stealing in parallel constraint programming. In I.P. Gent (ed.) CP 2009, 15th International Conference on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, vol. 5732, pp. 226–241. Springer (2009) [PCO12] D. Diaz, F. Richoux, Y. Caniou, Ph. Codognet et S. Abreu. Parallel Local Search for the Costas Array Problem. Parallel Computing and Optimization 2012 (PCO’12), IEEE. [LION6] D. Diaz, F. Richoux, Ph. Codognet, Y. Caniou et S. Abreu. Constraint-based Local Search for the Costas Array Problem. Learning and Intelligent OptimizatioN Conference 2012 (LION 6), Springer LNCS. [ES] A. Eiben et S. Smit. Evolutionary Algorithm Parameters and Methods to Tune Them. In Autonomous Search, Springer edition. [OR94] B. Gendron et T. Crainic. Parallel branch-and-bound algorithms : Survey and synthesis. Operations Research 42(6), 1042–1066 (1994) [HMS] Y. Hamadi, E. Monfroy et F. Saubion. Autonomous Search. 324 pages, Springer edition (2012). [Hoos] H. Hoos. Automated Algorithm Configuration and Parameter Tuning. In Autonomous Search, Springer edition. [CP06] L. Michel, A. See et P. Van Hentenryck Distributed constraint-based local search. In CP’06, 12th Int. Conf. on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, pp. 344–358. Springer Verlag (2006) [CP07] L. Michel, A. See et P. Van Hentenryck Parallelizing constraint programs transparently. In CP’07, 13th Int. Conf. on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, pp. 514–528. Springer Verlag (2007) [COR09] L. Michel, A. See et P. Van Hentenryck Parallel and distributed local search in comet. Computers and Operations Research 36, 2357–2375 (2009) [CP99b] L. Perron. Search procedures and parallelism in constraint programming. In CP’99, 5th Int. Conf. on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science, pp. 346–360. Springer Verlag (1999) [CBLS] P. Van Hentenryck et L. Michel Constraint-Based Local Search. The MIT Press (2005) 9 CV du directeur de thèse Éric MONFROY Date de naissance : 23 Février 1965 Professeur des Universités Principaux thèmes de recherche : aide à la décision, résolution coopérative de problèmes, programmation par contraintes, solveurs distribués, solveurs hybrides, programmation par règles. Formation : 2002 HDR, Université de Nantes. 1996 Doctorat, Université de Nancy I. Parcours : Depuis 2012 Professeur Université de Nantes. 2004 - 2012 Senior researcher, USM Chili. 2003 - 2004 Professeur Université de Nantes. 2000 - 2003 Maître de conférences, Université de Nantes. 1996 - 2000 Post-doc, CWI, Amsterdam, Pays-Bas. Comités d’organisation et comités de programme de colloques : – Comités d’organisation : environ 20, dont track CSP à ACM SAC (de 2003 à 2013), COSOLV workshop (5x), ERCIM workshop (5x), . . . – Comités de programme : environ 30 conférences (dont IJCAI, CP, ECA), et 25 workshops (dont CHR, Tricks, CP workshops) Publications : – Co-éditeur de livres : 3 – Co-éditeur de numéros spéciaux de journaux : 1 – Chapitres de livre : 3 – Articles dans des journaux internationaux : 12 – Articles dans des journaux nationaux : 4 – Présentations invitées dans des colloques internationaux : 8 – Colloques internationaux avec comité de lecture et publication des actes : 85 – Colloques nationaux avec comité de lecture et publication des actes : 18 Participations à des projets de recherche : – 2 projets européens et 3 groupes de travail européens – 10 projets de coopération internationale – 4 projets nationaux (dont 1 RNTL) Divers : – Encadrement de thèses de doctorat : 6 – Visites invitées dans des centres de recherche : 14 – Participation à jurys de thèse de doctorat : 14 – Participation à jurys de thèse d’HDR : 2 – Evaluations de projets FQRNT (Canada), FONDECYT (Chili), DIUFRO (Chili), Mecesup (Chili), Microsoft PhD Scholarship, Studium (France), RNTL (France). – Responsable de l’équipe COCOA du LINA (sep. 2001—oct. 2004) – Membre du conseil de laboratoire du LINA (déc. 2002 – déc. 2003) – Responsable du LIS (Logistique Informatique Sciences), UFR Sciences, Nantes oct. 2001 – oct. 2004 10 CV du co-encadrant Florian RICHOUX Florian Richoux received his Ph.D. in Computer Science from the École Polytechnique in 2009 for his work on the characterization of the complexity of constraint satisfaction problem sub-families. After his Ph.D., he went to the University of Tokyo, Japan, as a post-doctoral researcher during 8 months at the Mathematical Informatics 2nd Laboratory, where he continued to study theoretical aspects of constraint-based problems. Thus, he became a CNRS research assistant at the Japanese-French Laboratory for Informatics in the same university till August 2012, working on parallel local search algorithms to solve constraint-based problems on massively parallel machines located in Japan, France and Germany. In particular, he contributed to design and implement the parallel version of the Adaptive Search algorithm, reaching linear speed-ups over 8,192 cores on a real-world problem dealing with the assignation of RADAR and SONAR frequencies, the Costas Array problem. Since September 2012, he is Associate Professor at the University of Nantes, France. Professional Experience 2006-2009 : 2010-2012 since 2012 : Ph.D. student, LIX, École Polytechnique (Palaiseau, France) Post-doc then CNRS Research Assistant at the University of Tokyo (Tokyo, Japan) Associate Professor, University of Nantes (Nantes, France) Publications h-index : 3, citations : 11, peer-refereed papers : 7 5 selected publications (see http://pagesperso.lina.univ-nantes.fr/~richoux-f) 1. Manuel Bodirsky, Miki Hermann and Florian Richoux, Complexity of Existential Positive First-Order Logic, Journal of Logic and Computation, ed. Oxford Journals, 2011. 2. Daniel Diaz, Florian Richoux, Yves Caniou, Philippe Codognet and Salvador Abreu, Parallel Local Search for the Costas Array Problem, PCO 2012, IEEE. 3. Daniel Diaz, Florian Richoux, Philippe Codognet, Yves Caniou and Salvador Abreu, Constraint-based Local Search for the Costas Array Problem, LION 2012, Springer LNCS. 4. Florian Richoux, Complexity of Homogeneous Co-Boolean Constraint Satisfaction Problems, ICOICC 2011, IEEE. 5. Manuel Bodirsky, Miki Hermann and Florian Richoux, Complexity of Existential Positive First-Order Logic, CiE 2009, Springer LNCS. Achievements – Organizer : the special session « Large Scale Parallelism in Search » in LION 2012 and 2013, and the CP 2011 workshop « Parallel Methods for Constraint Solving ». – PC member : PMCS 2011, LION 2012, LION 2013. 11