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