Pré-rapport de stage de Master 2 Professionnel Mention Informatique Spécalité Systèmes et Applications Répartis Parcours Systèmes répartis embarqués ou temps-réel Programmation parallèle CPU / GPU Auteur : Clément Hermite Responsable de stage : Pierre Duboscq Année universitaire 2009-2010
Table des matières 1 Préface 2 1.1 Description................................... 2 1.2 Organisation du document........................... 2 2 Présentation 3 2.1 Novasys Ingénierie............................. 3 2.1.1 Groupe Pacte Novation...................... 3 2.1.2 Novasys Ingénierie......................... 4 2.2 Programmation parallèle............................ 4 2.2.1 Introduction............................... 4 2.2.2 Calcul sur GPU............................. 4 3 Stage 5 3.1 Contexte..................................... 5 3.2 Mission..................................... 5 3.2.1 Sujet................................... 5 3.2.2 Objectifs................................ 6 3.2.3 Roadmap................................ 8
CHAPITRE 1. PRÉFACE Chapitre 1 Préface Ce premier chapitre introduit brièvement le cadre dans lequel le stage est réalisé ainsi que le plan d'organisation de ce pré-rapport. 1.1 Description Mon stage de n d'étude s'inscrit dans le cadre du Master d'informatique spécialité Systèmes et Applications Répartis (SAR). Il se déroule sur le site de Novasys Ingénierie à Issy-Les-Moulineaux(92) du 12 Avril 2010 au 30 Septembre 2010. L'encadrement de mon stage est assuré par le directeur de Novasys Ingénierie, Monsieur Pierre Duboscq. Enn, l'intitulé de mon stage est Programmation parallèle CPU / GPU. 1.2 Organisation du document Ce pré-rapport présente dans un premier temps l'entreprise d'accueil et le domaine du calcul parallèle. Il insiste tout particulièrement sur la programmation parallèle sur carte graphique (GPU). Ensuite, il décrit le contexte de la mission et dénit clairement le sujet de mon stage ainsi que ses objectifs et sa roadmap générale. 2
CHAPITRE 2. PRÉSENTATION Chapitre 2 Présentation Ce second chapitre s'intéresse à présenter l'entreprise d'accueil et le domaine du calcul parallèle. 2.1 Novasys Ingénierie 2.1.1 Groupe Pacte Novation PACTE NOVATION est une société d'ingénierie logicielle pluridisciplinaire, intervenant dans des secteurs d'activités très variés comme le transport, la banque-nance, les télécommunications, l'énergie, l'industrie et le tertiaire. Son savoir-faire, reconnu auprès des très grands comptes, lui permet d'intervenir sur des applications à haute valeur ajoutée. Fondation : Avril 1994 Eectifs : 115 ingénieurs à ce jour Structure : Société Anonyme au capital de 512 000 Euros Actionnaires principaux : Cadres et dirigeants de l'entreprise, Public 2 liales : Assigraph International et Novasys Ingénierie. 1 agence en province sur Nantes. Avec l'acquisition de 92,56% des actions d'assigraph International, PACTE NOVATION a élargi ses domaines d'activité, notamment vers l'aéronautique, et a développé des compétences dans des métiers complémentaires aux siens et renforce ainsi sa capacité à livrer des composants logiciels métiers clés en mains à forte valeur ajoutée. La récente création sa liale détenue à 90% par PACTE NOVATION : la SAS NOVASYS Ingénierie et le rachat par cette dernière d'un fond de commerce informatique temps réel dans le domaine ferroviaire permet de continuer son développement dans le domaine ferroviaire en élargissant ses compétence techniques. 3
2.2. PROGRAMMATION PARALLÈLE CHAPITRE 2. PRÉSENTATION 2.1.2 Novasys Ingénierie La volonté de NOVASYS Ingénierie se concrétise autour d'une spécialité forte : Les systèmes distribués temps réel Regroupant les systèmes embarqués, industriels ou de communication, et d'une manière générale tous les systèmes d'information répondant à un ou plusieurs critères, tels que des contraintes temps réel fortes ou des exigences de sécurité et de disponibilité élevées. 2.2 Programmation parallèle 2.2.1 Introduction Un code de calcul ou programme peut être écrit suivant deux modèles de programmation : séquentiel ou parallèle. Dans le modèle séquentiel, un programme est exécuté par un unique processus. Ce processus tourne sur un processeur d'une machine et a accès à la mémoire du processeur. Il arrive que pour certains codes de calcul, la mémoire d'un seul processeur ne suse plus (manipulation de gros tableaux) et/ou le temps de calcul soit trop important. En eet, pendant de nombreuses années, la vitesse d'horloge des microprocesseurs a augmenté en vue d'accroître leurs performances. Cette technique est à présent dépassée compte tenu des limites physiques des semi-conducteurs et des architectures des processeurs traditionnels. Les problèmes de consommation énergétique, de dissipation et de temps de latence des mémoires réduisent en eet la réalité des gains réalisés sur les performances réelles des applications. La mise en parallèle de plusieurs processeurs est donc une manière simple d'augmenter la puissance de traitement d'un système informatique. Nombre de superordinateurs exploitent des processeurs standards, bénéciant ainsi des économies d'échelle rendues possibles par les autres marchés que couvrent ces puces. 2.2.2 Calcul sur GPU Les cartes graphiques actuelles emploient un processeur de traitement graphique spécialisé (GPU pour Graphics Processing Unit). Ce dernier va gérer les diérentes opérations, par exemple le calcul d'une scène en 3D. Ce type de calculs est aisé à paralléliser. C'est donc tout naturellement que les constructeurs ont choisi un modèle où le GPU comprend de multiples unités de traitement. La 3D nécessite également une large bande passante, ce qui impose l'utilisation de mémoire spécialisée, à haut rendement. Unités de traitement multiples et bande passante avancée sont exactement les caractéristiques demandées par les supercalculateurs. Les programmeurs ont donc rapidement mis à prot la puissance des cartes graphiques pour des calculs classiques (GPGPU pour General-Purpose Computing on Graphics Processing Units). 4
CHAPITRE 3. STAGE Chapitre 3 Stage Ce troisième chapitre décrit dans un premier temps le contexte de la mission, c'està-dire la plate-forme d'iaas dont il faut réaliser l'environnement de tests et le contrat de recherche externe établi avec le LIP6. Ensuite, il évoque le sujet de mon stage, son évolution, ses objectifs ainsi que sa roadmap générale. 3.1 Contexte Dans des domaines aussi variés que celui de l'industrie, du médical, du service aux particuliers ou de la nance, la complexité croissante des modèles mathématiques utilisés et l'augmentation permanente des volumes de données à considérer, justient la continuelle recherche de performance et d'ecience pour les traitements informatisés impliqués. Cette course à l'optimisation s'appuie sur la recherche et la maîtrise de solutions innovantes ainsi que la mise en oeuvre d'architectures pertinentes avec des nouvelles machines de puissance toujours croissante. Dans ce contexte, NOVASYS Ingénierie souhaite d'une part, expérimenter la capacité de calcul des cartes graphiques (GPU) et d'autre part, appréhender leurs contraintes et leurs domaines d'utilisation. 3.2 Mission 3.2.1 Sujet Présentation C'est donc dans le contexte de réalisation et d'intégration d'un module de décision à la plate-forme OrangeCloud que mon stage s'insère. En eet, il s'agit de concevoir un environnement de validation du système de gestion des ressources virtualisées utilisé. En eet, le système d'allocation manuelle des machines virtuelles est augmenté par des mécanismes d'auto-scaling dirigés par les SLA assurés par ledit module de décision. 5
3.2. MISSION CHAPITRE 3. STAGE Par conséquent, pour sa bonne réalisation, il convient de commencer le stage par une étude préliminaire des diérentes méthodes et outils permettant d'évaluer l'ecacité des techniques d'allocation de ressources utilisées par des solutions d'iaas. Cette étude permettra la production d'un état de l'art du domaine. Ensuite, il s'agit de concevoir le testbed (l'environnement de tests) de la plate-forme. Il contiendra par exemple des applications web d'orange permettant de simuler des applications traditionnelles (ex : site web de vente aux enchères) ainsi que des mécanismes d'injection de charge (ex : trac HTTP). Enn, il consistera à établir des scénarios de tests pertinents et qui seront exécutés an de collecter diérentes métriques dans le cadre de la qualication de la plate-forme et de son module de décision. Evolution Durant la phase de prise en main du contexte, il est apparu que le module de décision était encore en phase de spécication. Par conséquent, et à cause de sa forte dépendance avec l'environnement de tests à produire, la mission du stage a évolué. Désormais, elle consiste également à participer à la spécication des interfaces du module ainsi qu'à son intégration avec la plate-forme Orange Cloud. 3.2.2 Objectifs Etat de l'art Le premier objectif de mon stage consiste donc en la réalisation d'un état de l'art portant sur les deux aspects suivants : Diérents acteurs du domaine de l'infrastructure as a Service. Diérentes méthodes et outils utilisés pour la qualication des techniques d'allocation de ressources dans les datacenters virtualisés. Pour les diérents acteurs du domaine de l'iaas, il s'agit d'en analyser un certain nombre an de comprendre leurs mécanismes internes de fonctionnement. Un intérêt tout particulier doit être porté sur les moyens d'approvisionnement dynamique de ressources dans les diérentes solutions. Par ailleurs, il faut également réaliser une étude de faisabilité indiquant de la possibilité d'intégration du module de décision aux diérentes solutions et les coûts impliqués par un tel travail. Le second aspect de mon état de l'art porte sur la construction d'une bibliographie concernant les méthodes et outils de qualication des techniques d'allocation de ressources dans les datacenters virtualisés. Le point de départ de ce travail est l'article [?] dont l'approche formulée sert à la modélisation initiale du module de décision du CRE. De plus, il est important de noter que l'état de l'art n'a pas pour objectif de recenser toutes les méthodes existantes. En eet, seul un sous-ensemble de techniques jugées pertinentes et adaptées à la plate-forme cible sera étudié et présenté. 6
3.2. MISSION CHAPITRE 3. STAGE S'initier à l'utilisation des GPU Ce second objectif est réalisé en parallèle du premier. Sur celui-ci, je suis amené à travailler conjointement avec mes maîtres de stage ainsi que les intervenants du LIP6 dans le cadre du CRE. Dans un premier temps, il convient de participer à la spécication des interfaces proprement dites. D'une part, cette implication se justie par la forte dépendance des services oerts par le module de décision par le biais de ses interfaces avec le testbed à réaliser. D'autre part, il s'agit de s'assurer que le module de décision reste assez générique pour s'intégrer avec d'autres solutions d'iaas. Dans un second temps, une fois que la spécication aura été terminée, je participerai à l'intégration des interfaces avec la plate-forme en cours de prototypage chez Orange Labs. Cette intégration ne concerne que la partie métier du module de décision, c'est-àdire l'intégration avec OrangeCloud, les modèles de SLA et le remontage d'informations telles que la charge de l'application et sa performance. En eet, la partie décisionnelle est livrée par le LIP6 et sera utilisé en tant que boîte noire. Sélectionner et installer une plateforme d'évaluation GPU Cet troisième objectif consiste en la conception d'un environnement de validation du système, c'est-à-dire la plate-forme OrangeCloud avec le module de décision. Cet objectif est tributaire de la bonne réalisation des deux précédents objectifs : l'état de l'art sur les méthodes et outils de qualication ainsi que la spécication et l'intégration des interfaces du module de décision. Une fois ces conditions atteintes, il convient de proposer une solution de testbed adaptée à la plate-forme cible. Une fois approuvée, mon travail consistera à la mettre en place, à la tester et à fournir un livrable ainsi qu'une documentation technique d'utilisation. S'initier à la programmation sur GPU. Ce dernier objectif consiste à dénir une méthodologie dans le but de réaliser des campagnes de tests de la plate-forme cible. Ces campagnes seront réalisées grâce au testbed que je conçois. Tout comme pour l'objectif précédent, la méthodologie est tributaire de l'état de l'art réalisé. Cette politique doit donc comprendre la spécication complète des scénarios en indiquant pour chacun : L'environnement cible (ex : le nombre d'instances des applications à déployer). L'environnement de tests (ex : les mécanismes d'injection de charge). Les mesures à prendre au cours de l'exécution des campagnes de tests. Etablir un comparatif de performance. 7
3.2. MISSION CHAPITRE 3. STAGE 3.2.3 Roadmap Le stage est organisé selon la roadmap générale suivante : Avril 2010 : 1. Etat de l'art. 2. Sélectionner et installer une plateforme d'évaluation GPU. Mai 2010 : 1. Etat de l'art. 2. S'initier à la programmation sur GPU. 3. Etablir un comparatif de performance. Juin 2010 : 1. 2. 3. Juillet 2010 à Septembre 2010 : 1. 8