Page 1 sur 9
Application de K-Means à la définition du nombre de VM optimal dans un
Cloud
Khaled Tannir; Hubert. Kadima ; Maria Malek
Laboratoire LARIS/EISTI Ave du Parc 95490 Cergy-Pontoise France
contact@khaledtannir.net, hubert.kadima@eisti.fr, maria.m[email protected]
Résumé
Ce papier présente les premiers éléments de définition d’un algorithme permettant de
déterminer le nombre optimal de machines virtuelles (VM Virtual Machines) lors de
l’exécution des applications de fouille de données dans un environnement Cloud. L’efficacité
de traitement des problèmes de fouille de données requiert d’obtenir au préalable un
partitionnement intelligent de données par clustering de manière à effectuer le plus
indépendamment que possible les traitements des fragments de données à cohérence
sémantique forte.
Nous pensons que l’exécution sur les données distribuées dans le Cloud d’une variante
parallèle de l’algorithme de clustering h-means adaptée en phase de présélection du
processus PMML [18] pour (Predictive Model Markup Language) permettrait d’assurer un
partitionnement optimal des données et de déterminer un nombre de VM optimal avant
l’exécution de l’application.
Mots-clés : Cloud computing, h-means, classification, parallélisme dans des grilles,
partitionnement de données, fouille de données.
1. Introduction
Ce papier présente les premiers éléments de définition d’un algorithme permettant de
déterminer le nombre optimal de machines virtuelles pour une exécution efficace des
applications de fouille de données dans un environnement Cloud. Un environnement Data
Intensive Computing, tel que celui-ci, devrait permettre d’exécuter efficacement des
applications qui permettent la production, manipulation ou analyse des gros volumes de
données de quelques centaines de megabytes aux petabytes et au-delà [1]. A cause des
coûts de communication élevés dans cet environnement, les traitements parallèles doivent
être les plus autonomes que possibles et effectués avec le moins de synchronisations
possibles. L’efficacité de traitement des problèmes de fouille de données requiert d’obtenir
au préalable un partitionnement intelligent de données de manière à effectuer le plus
indépendamment possible les traitements des fragments de données en tenant compte des
caractéristiques spécifiques aux Clouds (élasticité, monitoring fin d’utilisation des ressources,
speed-up …).
L’utilité du partitionnement intelligent obtenu à partir du clustering pour le problème des
règles d’association a été déjà étudiée dans *2+ par exemple. Nous pensons que l’exécution
sur les données distribuées dans le Cloud d’une variante parallèle de l’algorithme de
Page 2 sur 9
clustering h-means en phase de présélection du processus PMML [18] (Predictive Model
Markup Language) permettrait d’assurer un partitionnement optimal des données et de
déterminer un nombre de VM optimal. Nous présentons dans ce papier notre approche qui
consiste de partitionner les données en fonction de leurs similarités. Nous procédons par
deux étapes : l’exécution de l’algorithme de partitionnement puis distribuer les données
partitionnées sur le nombre de machines virtuelles trouvé.
Dans notre environnement d’exécution, les applications de fouille de données sont
représentées sous forme d’un workflow conformément au processus PMML. Toute activité
du workflow impliquant la manipulation de données génère des requêtes sur les données
distribuées dans le Cloud. On trouve dans [3] une présentation de plusieurs techniques
spécifiques utilisées par les systèmes de workflows pour exécuter les applications workflows
data intensive en utilisant des ressources globalement distribuées. La plupart des systèmes
utilisent une combinaison des techniques pour fournir les performances élevées et la haute
disponibilité à faibles coûts. Une seule technique n’est pas suffisante pour minimiser les
effets sur la performance et les coûts et augmenter l’efficacité des opérations de transferts
de données.
Le partitionnement de données, le placement de données ou la réplication peuvent être
réalisés avant ou durant l’exécution de workflows dans un environnement Cloud Data
Intensive pour améliorer les performances d’exécution de l’application. Kosar et al. *4+ ont
défini un scheduler pour les activités de placement de données dans le Grid. Ils proposent
d’en faire un axe majeur des travaux de recherche à effectuer dans ce domaine. Les activités
de placement de données peuvent être intégrées ou découplées des activités de scheduling
des tasks. La réplication de données dans des ressources distribuées est le mécanisme
commun pour augmenter la disponibilité de données. La décision de placement et de
réplication de données sont basées sur les objectifs à optimiser, la localité de référence de
données et la minimisation de la distance de répartition entre les données et les traitements
associés.
La réponse apportée par h-means pour répondre à ces derniers problèmes se traduit en
termes de traitement des requêtes par similarité sur de gros volumes de données,
notamment à travers, par exemple, les calculs des k plus proches voisins (kNN). Au processus
de clustering, s’ajoutent les problèmes de parallélisme de traitements et de la distribution
de données. On doit se donner les moyens d’étudier les performances de cette approche de
partitionnement appliquée sur une grosse base de données pour obtenir et exploiter des
classes et déterminer une taille et un nombre optimal de ces classes pour que les requêtes
issues du workflow puissent être traitées en temps optimal et avec une haute précision. La
mise en œuvre de h-means parallèle introduit des méthodes de traitement de requêtes
parallèles sur une grille de machines pour réaliser l’allocation optimale des données grâce à
la recherche efficace des kNN en parallèle. On vise l’obtention d’un nombre réduit de VM
distribués à travers les Clouds permettant néanmoins des temps de recherche sous-linéaires
et optimaux vis-à-vis des classes déterminées précédemment.
Dans un premier temps, une application structurée en workflow et utilisant les techniques
de fouille de données est exécutée pour des besoins de tests dans un environnement Cloud
hybride comportant l’infrastructure Cloud OpenNebula [5] interconnectée à Amazon EC2 [6].
Page 3 sur 9
Les tests s’effectuent sur les instances EC2 Amazon en connexion avec un moteur
d’orchestration de workflow implanté côté OpenNebula.
La suite de ce papier est structurée comme suit. Dans la section 2, nous présentons notre
algorithme CloudMeans variante de h-means parallèle que nous utilisons. Dans la section 3,
nous décrivons la configuration de l’environnement d’exécution de l’application de tests
basée sur l’utilisation du moteur de workflow KNIME [17+ et de l’infrastructure Cloud
OpenNebula interconectée à Amazon via les services AWS (Amazon Web Services). A titre de
conclusion, dans la section 4, nous présentons le plan des premières actions entreprises et
les principaux axes de nos futurs travaux.
2. Présentation de points essentiels de l’algorithme
CloudMeans est une variante de h-means *9+ lui même variante de l’algorithme k-means
[8]. K-means est un des algorithmes de segmentation les plus connus. Il est souvent
utilisé quand il y a un besoin d’extraire des regroupements (appelés encore catégories,
groupes ou "clusters") à partir d’un ensemble de données d’une façon non supervisée.
Chaque catégorie est représentée par son barycentre.
Entrées L’algorithme prend comme entrées un ensemble de n exemples, un entier k
qui est le nombre de catégories à trouver, ainsi qu’une mesure de distance d() (comme la
distance euclidienne) qui permet de calculer la distante entre deux exemples. Plus cette
distance entre deux exemples est petite, plus les deux exemples sont similaires.
Déroulement L’algorithme assigne à chaque itération un exemple donné au
barycentre le plus proche. Des mesures d’inerties inter-catégories et intra catégories
sont calculées. Ces mesures d’inerties sont basées sur les densités des groupes.
L’algorithme converge vers une situation de stabilisation de barycentres quand l’inertie
inter-catégories est minimisée, autrement dit quand les catégories trouvées sont les plus
denses possibles (ou les mieux séparés).
Sortie La sortie de l’algorithme consiste en une partition des n données en k groupes
(ou catégories) chacun est représenté par son barycentre. Une variante très connue de
k-means est l’algorithme h-means [9+ dont le but est d’optimiser le temps de
convergence vers les barycentres. La différence se fait au moment du calcul du
barycentre qui se fait chaque fois qu’une catégorie est traitée complètement et non pas
après le traitement de chaque exemple.
Plusieurs algorithmes de parallélisation de k-means ont été proposés [10,11,12,13]. Dans
[10+, une parallélisation de l’algorithme h-means est présentée. Nous présentons ici une
parallélisation possible (sur plusieurs processeurs) de l’algorithme h-means. Cette
parallélisation constitue le point de départ pour notre algorithme.
Page 4 sur 9
Version parallèle de l’algorithme h-means
Répartir en bloc de manière égale les exemples sur p processeurs
Pour chaque processeur kp dans {0,1,..,p-1} (en parallèle)
Attribuer arbitrairement chaque exemple dans un processeur kp à une catégorie
/* Calcul de affectations des exemples aux catégories en parallèle */
Tant que les barycentres ne sont pas stables
Pour tous les exemples Exemples(i) dans processeur kp
Calculer la distance entre Exemple(i) et tous les barycentres
Trouver k’ tel que k’ème barycentre soit le plus proche de Exemple(i)
Attribuer Exemple(i) au barycentre k’
/* Recalcule des barycentres des catégories en parallèle */
Calculer la somme partielle des exemples appartenant à la même catégorie.
Envoyer la somme partielle aux autres processeurs.
Recevoir les sommes partielles.
Pour chaque catégorie faire
Effectuer la somme des sommes partielles.
Diviser la somme totale par le nombre d’exemples de la catégorie courante.
Notre adaptation des ces algorithmes étend l’algorithme de parallélisation h-means en
l’englobant dans d’autres taches plus complexes. Le déroulement de l’algorithme, illustré
par la figure 1, peut être résumé ainsi : on commence par indiquer un nombre choisi
aléatoirement (p) que nous introduisons comme paramètre en entrée à l’algorithme. Ce
nombre servira comme base de répartition des blocs de données. Nous étudions
actuellement l’impact des variations de ce nombre sur l’efficacité de notre algorithme et
travaillons actuellement pour déterminer ce nombre de façon optimale. Une fois le
nombre de catégories nous a été retourné par cette partie de l’algorithme nous
l’utiliserons comme paramètre pour la création d’un nombre égale de machines
virtuelles sur le cloud local. Les données actuellement partitionnées par catégorie seront
redistribuées sur ces machines. Dans le cas les ressources du cloud local sont
insuffisantes pour absorber cette demande, nous faisons appel au cloud public afin qu’il
nous fournisse les ressources manquantes.
Actuellement nous travaillons sur cette partie afin de définir de façon optimale la
stratégie à adopter afin de maximiser l’efficacité des traitements tout en tenant compte
du volume de données à traiter, du nombre de machines virtuelles à créer. Finalement,
le traitement des données est lanet le résultat est cupéré et mis à disposition de la
prochaine étape du workflow global du traitement.
Les données internes nécessaires au fonctionnement de l’algorithme comme par
exemple les tables de hachages communes sont stockées en local. Nous étudions
également la possibilité d’utiliser une base NoSQL telle que Cassandra [21] pour
améliorer la disponibilité et les performances de ces données. Une base de données
NoSQL (Not only SQL) désigne une catégorie de base de données apparue en 2009 qui se
différencie du modèle relationnel que l'on trouve dans des bases de données connues
comme MySQL ou PostgreSQL. Ceci permet d'offrir une solution alternative aux
Page 5 sur 9
problèmes récurrents des bases de données relationnelles de perte de performance
lorsque l'on doit traiter un très gros volume de données.
Figure 1 -Les points essentiels de l'algorithme
3. Un environnement distribué piloté par les workflows applicatifs
Dans notre environnement d’exécution, les applications de fouille de données sont
représentées sous forme d’un workflow conformément au processus PMML [18]
(Predictive Model Markup Language). Toute activité du workflow impliquant la
manipulation de données génère des requêtes sur les données distribuées dans le Cloud.
PMML est un langage basé sur XML définissant une manière standard de décrire les
modèles statistiques et de traitement de données au sein des applications décisionnelles.
Ce langage est poussé par un consortium d'éditeurs, le Data Mining Group (DMG). Il a
pour but de permettre le partage de modèles analytiques entre outils de « Business
Intelligence » supportant ce standard. L'idée est bien de dépasser l'obstacle des
technologies propriétaires en fournissant la possibilité de finir un modèle de
traitement de données dans une application, qui puisse être consulté et réexploité dans
un autre outil. Le format de description proposé prend la forme d'un XML Schema.
PMML intègre l'ensemble des informations nécessaires à l'exploitation d'un modèle
d'analyse : le type de données en entrée et en sortie, le mode d'exécution du modèle, et
la manière de générer et d'interpréter les résultats en s'appuyant sur ce standard.
Egalement, il a pour vocation de couvrir l'ensemble des grandes méthodes de
datamining.
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !