Distributed Clustering Algorithms Over a Cloud Computing Platform Matthieu Durut
Total Page:16
File Type:pdf, Size:1020Kb
Distributed clustering algorithms over a cloud computing platform Matthieu Durut To cite this version: Matthieu Durut. Distributed clustering algorithms over a cloud computing platform. Other [cs.OH]. Télécom ParisTech, 2012. English. NNT : 2012ENST0055. tel-00744768v2 HAL Id: tel-00744768 https://pastel.archives-ouvertes.fr/tel-00744768v2 Submitted on 4 Jun 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. 2012-ENST-055 EDITE - ED 130 Doctorat ParisTech THESE pour obtenir le grade de docteur délivré par TELECOM ParisTech Spécialité « Informatique » présentée et soutenue publiquement par Matthieu DURUT le 28 septembre 2012 Algorithmes de classification répartis sur le cloud Directeur de thèse : Fabrice ROSSI Co-encadrement de la thèse : Joannès VERMOREL Jury M. Ludovic DENOYER, Maître de conférences, Université Paris VI Examinateur M. Frédéric MAGOULES, Professeur, Ecole Centrale Paris Rapporteur M. Laurent PAUTET, Professeur, Télécom ParisTech Examinateur M. Fabrice ROSSI, Professeur, Université Paris I Directeur de thèse M. Michel VERLEYSEN, Professeur, Université catholique de Louvain Rapporteur M. Joannès VERMOREL, Fondateur de la société Lokad Examinateur M. Djamal ZEGHLACHE, Professeur, Télécom SudParis Examinateur TELECOM ParisTech école de l’Institut Télécom - membre de ParisTech ii Remerciements Mes premiers remerciements vont à Fabrice Rossi, mon directeur de thèse, et Joannès Vermorel, mon encadrant au sein de la société Lokad. Par ses très vastes connaissances en statistiques et en informatique, Fabrice est depuis le départ un interlocuteur indispensable qui m’a sans cesse apporté une vision claire des enjeux et des difficultés dans lesquels j’évoluais. Cette connaissance pluri-disciplinaire, rare, m’a permis d’avancer sur le sujet à cheval entre deux mondes qu’est le clustering réparti. Joannès quant à lui, par son dynamisme et son intelligence quasi-visionnaire des enjeux industriels et techniques, a su apporter à ces travaux la dimension applicative sans laquelle la statistique n’est rien à mes yeux. Une troisième personne a joué un rôle crucial dans cette thèse, c’est Benoît Patra. Benoît, ami d’école avant d’être collègue, a été en thèse à mes côtés à Lokad. Benoît est l’ami sur lequel j’ai compté dans la difficulté. Son intransigeance intellectuelle et sa puissante volonté font de lui un collaborateur exceptionnel avec lequel j’ai pris beaucoup de plaisir à travailler. Je remercie vivement la société Lokad de m’avoir proposé cette thèse CIFRE. Les thèses CIFRE ont souvent mauvaise réputation. Je n’aurais pas voulu la mienne autrement. Lokad m’a fourni un excellent cadre de travail. En plus d’un soutien matériel (notamment sur les amples ressources de cloud englouties lors de mes nombreux mois d’expérimentation), Lokad m’a laissé un temps précieux pour mes travaux plus académiques. Les échelles de temps en recherche académique et dans une startup sont difficilement conciliables. Fabrice et Joannès ont su trouver un juste milieu. Mes pensées vont également à mes autres collègues de bureau : Hamza, Benjamin, Estelle, Rinat et Christophe. Mes remerciements vont ensuite à Michel Verleysen et Frédéric Magoulès pour m’avoir fait l’honneur de rapporter ce travail. Je remercie également Djamal Zeghlache, Ludovic Denoyer et Laurant Pautet pour leur participation à ce jury. Je souhaite également saluer la bienveillance de Gérard Biau, qui m’a fourni des conseils éclairés tout au long de cette thèse. Au moment de soutenir cette thèse, j’éprouve une forte reconnaissance pour mes iii professeurs de mathématiques en classe préparatoire, Serge Francinou et Eric Leborgne. En dehors de mes activités directes de recherche, j’ai pris beaucoup de plaisir pendant ces trois années à discuter de sujets techniques —souvent plus que de rai- son autour de bières— avec mes amis Charles Binet, Jérémie Bonnefoy, Arnaud Brothier, Matthieu Cornec, Guillaume Delalleau, Oriane Denizot, Xavier Dupré, Rénald Goujard, Jérémie Jabuckowitz, Pierre Jacob, Julien Lecoeur, Gwénolé Lemenn, Fantine Mordelet, Adrien Saumard, Baptiste Rambaud et David Sibaï. J’espère les retrouver au pot de soutenance. Enfin, je remercie tous mes proches, parents et amis, notamment ma tante Colette Millot et ma femme Elodie, qui a accompagné mes joies et mis en déroute les nombreux doutes que ne manque pas de soulever le travail de thèse. Aknowledgement In addition to all the the people thanked above, I would like to express a special thanks to Lokad and the Microsoft Azure team for the material support I have been provided with. During my PhD, I have been using for research purpose between 120.000 and 130.000 hours of CPU. This heavy consumption has been graciously undertaken by Lokad and the Microsoft Azure team. May they be thanked for this. iv Résumé Les thèmes de recherche abordés dans ce manuscrit sont inspirés et motivés de problèmes concrets rencontrés par la société Lokad. Ils ont trait principa- lement à la parallélisation d’algorithmes de classification non-supervisée (clustering) sur des plateformes de Cloud Computing. Le chapitre 2 propose un tour d’horizon de ces technologies. Nous y présentons d’une manière générale le Cloud Computing comme plateforme de calcul. Le chapitre 3 présente plus en avant l’offre cloud de Microsoft : Windows Azure. Le chapitre suivant analyse certains enjeux techniques de la conception d’ap- plications cloud et propose certains éléments d’architecture logicielle pour de telles applications. Le chapitre 5 propose une analyse du premier algo- rithme de classification étudié : le Batch K-Means. En particulier, nous approfondissons comment les versions réparties de cet algorithme doivent être adaptées à une architecture cloud. Nous y montrons l’impact des coûts de communication sur l’efficacité de cet algorithme lorsque celui-ci est implémenté sur une plateforme cloud. Les chapitres 6 et 7 présentent un travail de parallélisation d’un autre algorithme de classification : l’algo- rithme de Vector Quantization (VQ). Dans le chapitre 6 nous explorons quels schémas de parallélisation sont susceptibles de fournir des résultats sa- tisfaisants en terme d’accélération de la convergence. Le chapitre 7 présente une implémentation de ces schémas de parallélisation. Les détails pratiques de l’implémentation soulignent un résultat de première importance : c’est le caractère en ligne du VQ qui permet de proposer une implémentation asyn- chrone de l’algorithme réparti, supprimant ainsi une partie des problèmes de communication rencontrés lors de la parallélisation du Batch K-Means. Mots clés : calcul réparti, méthodes de clustering, K-Means, quanti- fication vectorielle, asynchronisme, algorithmes en ligne, Cloud Com- puting, Windows Azure, descente de gradient répartie. vi Abstract The subjects addressed in this thesis are inspired from research problems faced by the Lokad company. These problems are related to the challenge of designing efficient parallelization techniques of clustering algorithms on a Cloud Computing platform. Chapter 2 provides an introduction to the Cloud Computing technologies, especially the ones devoted to intensive computations. Chapter 3 details more specifically Microsoft Cloud Comput- ing offer : Windows Azure. The following chapter details technical aspects of cloud application development and provides some cloud design patterns. Chapter 5 is dedicated to the parallelization of a well-known clustering algorithm: the Batch K-Means. It provides insights on the challenges of a cloud implementation of distributed Batch K-Means, especially the impact of communication costs on the implementation efficiency. Chapters 6 and 7 are devoted to the parallelization of another clustering algorithm, the Vector Quantization (VQ). Chapter 6 provides an analysis of different paral- lelization schemes of VQ and presents the various speedups to convergence provided by them. Chapter 7 provides a cloud implementation of these schemes. It highlights that it is the online nature of the VQ technique that enables an asynchronous cloud implementation, which drastically reduces the communication costs introduced in Chapter 5. Keywords: distributed computing, clustering methods, K-Means, vec- tor quantization, asynchronous, online algorithms, Cloud Computing, Windows Azure, parallel gradient descent. Contents Contents viii 1 Introduction 1 1.1 Contexte scientifique . 1 1.2 Contexte de la thèse . 3 1.3 Présentation des travaux . 6 1.3.1 Chapitre 2 - Introduction au Cloud Computing . 6 1.3.2 Chapitre 3 - Introduction à Azure . 7 1.3.3 Chapitre 4 - Éléments de conception logicielle sur le cloud 8 1.3.4 Chapitre 5 - Algorithmes de Batch K-Means répartis . 9 1.3.5 Chapitre 6 - Considérations pratiques pour les algorithmes de Vector Quantization répartis . 10 1.3.6 Chapitre 7 - Implémentation cloud d’un algorithme de Vector Quantization réparti et asynchrone . 12 1.4 Résumé des contributions . 13 2 Presentation of Cloud Computing 15 2.1 Introduction . 15 2.2 Origins of Cloud Computing . 18 2.2.1 HPC and commodity hardware computing . 18 2.2.2 Grid Computing . 19 2.2.3 Emergence of Cloud Computing . 20 2.3 Cloud design and performance targets . 21 2.3.1 Differences between Cloud Computing and Grid Computing 21 2.3.2 Everything-as-a-Service (XAAS) . 23 2.3.3 Technology stacks . 25 2.4 Cloud Storage level . 28 2.4.1 Relational storage and ACID properties . 30 2.4.2 CAP Theorem and the No-SQL positioning . 31 2.4.3 Cloud Storage Taxonomy . 33 2.5 Cloud Execution Level . 34 CONTENTS ix 2.5.1 MapReduce . 34 2.5.2 GraphLab . 39 2.5.3 Dryad and DryadLINQ . 40 3 Presentation of Azure 43 3.1 Introduction . 43 3.2 Windows Azure Compute . 45 3.3 Windows Azure Storage .