Top Banner
Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATION DES CHAÎNES DE PRODUCTION D’OBJETS MÉTÉOROLOGIQUES 3D Rapport de stage de Master Informatique Auteur : Kasimir Abdou n o étudiant : 31004687 Encadrants : Dominique Mékiès Ingénieur-Chercheur LACy Responsable de stage UFR Sciences et Technologies : Pr. Frederic Mesnard Période du stage : du 15 janvier 2018 au 15 juillet 2018
46

OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones...

Jul 09, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Méteo-France Réunionet

Laboratoire de l’Atmosphère et des Cyclones

OPTIMISATION DES CHAÎNES DEPRODUCTION D’OBJETS MÉTÉOROLOGIQUES

3D

Rapport de stage de Master InformatiqueAuteur :Kasimir Abdouno étudiant : 31004687

Encadrants :Dominique Mékiès

Ingénieur-Chercheur LACy

Responsable de stage UFR Sciences et Technologies :

Pr. Frederic Mesnard

Période du stage : du 15 janvier 2018 au 15 juillet 2018

Page 2: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE
Page 3: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Le succès c’est d’aller d’échec en échecsans perdre son enthousiasme.

Winston Churchill, 1874 - 1965

Page 4: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

c© LATEX original style made by David LAÏ-YOCK (2016)c© LATEX modified by Sébastien MACÉ (2017)

II

Page 5: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Remerciements

Je remercie tout d’abord tout l’équipe du Météo-France et LACy pour son accueil convivial.Entre autre , je tiens à remercier tout le service informatique pour leur support technique etleur sympathie.

Je remercie tout particulièrement, mon tuteur de stage, monsieur Dominique MEKIES, pourson accueil, le travail extraordinaire qu’il effectue avec nous tous les jours, et pour le bondéroulement du stage. Mais aussi la patience dont il fait preuve.

Je remercie aussi, mon collègue et camarade monsieur Dalili AHAMADA, pour sa collaboration,ses aides et conseils qu’il m’a fourni durant cette période de stage ; Sans oublier les discussionsconstructives que l’on a échangé.

Je n’oublie pas de remercier le travail de tous les équipes pédagogiques qui ont participé à maformation et à mon épanouissent intellectuel et moral.

Et finalement, je profite de mémoire de stage pour ma gratitude à ma famille pour tout etsans qui je ne serai pas là.

K.ABDOU

III

Page 6: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

IV

Page 7: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Résumé

Le projet Weather-3D est ensemble d’outils destiné au chercheurs du Laboratoire de l’At-mosphère et des Cyclones pour la production, en amont, d’objets météorologiques en troisdimensions, puis leur visualisation dans un navigateur WebGL. Mon Stage s’articule sur laproduction des ces objets en trois dimensions dont la création n’est pas instantané. De plus, leprocessus de création ces objets sont très gourmands en ressource de calcul et mémoire, et nesont pas optimisés. L’objectif, dans un premier temps, est d’optimiser les chaînes de productionde ces objets météorologiques en 3 dimensions à partir de données issues de radars. Puis dansun deuxième temps, d’améliorer le programme en ajoutant des fonctionnalités supplémentaires.

Mots-clés

Weather-3D, Shell/Bash, Python, Objet Météorologique 3D, Optimisation, Paralléli-sation, processeurs multi-coeurs, isosurface 3D, Nuage de Points

Abstract

Weather-3D project is a set of tools for researchers of the Laboratoire de l’Atmosphère etdes Cyclones for production of meteorological objects in three dimensions, in order to displayin a WebGL browser. My internship is based on the production of these 3D objects. Moreover, the processes of creation of these objects are very greedy in resource of computation andmemory, and are not optimized. The first objective is to optimize the production lines of thesemeteorological objects from the radar data. Then improve the program by adding additionalfeatures.

Keywords

Weather-3D, Shell/Bash, Python, 3D Meteorological Object, Optimization, Paralléli-sation, Multi-core processors, Isocontour 3D, Point Cloud

V

Page 8: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

VI

Page 9: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Table des matières

1 Introduction 1

2 Présentation de l’entreprise d’accueil 22.1 Météo-France Réunion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2 Laboratoire de l’Atmosphère et des Cyclones (LACy) . . . . . . . . . . . . . 32.3 Organisation du LACy et de Météo-France . . . . . . . . . . . . . . . . . . . 42.4 Contact avec l’entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Présentation du stage 63.1 Cadre du stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.2 Sujet et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1.3 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.1.4 Ressources mises à disposition . . . . . . . . . . . . . . . . . . . . . . 73.1.5 Environnement informatique . . . . . . . . . . . . . . . . . . . . . . 7

3.1.5.1 Matériels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.1.5.2 Logiciels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.5.3 Environnements de développements . . . . . . . . . . . . . 83.1.5.4 Autres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.2 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2.1 Formats des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2.2 Concepts et définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.3 Travaux réalisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.3.1 Bibliographie et étude de l’existant . . . . . . . . . . . . . . . . . . . 12

3.3.1.1 Organisation de Weather3D . . . . . . . . . . . . . . . . . . 123.3.1.2 Chaîne de production des objets 3D . . . . . . . . . . . . . 123.3.1.3 Tests de la chaîne de production . . . . . . . . . . . . . . . 133.3.1.4 Voies d’optimisations . . . . . . . . . . . . . . . . . . . . . 14

3.3.2 Optimisation de la chaîne de production des objets 3D : scripts Bash 143.3.2.1 Approches . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.2.2 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.2.3 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.2.4 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . 153.3.2.5 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Page 10: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

3.3.3 Optimisation de la chaîne de production des objets 3D : scripts Python 163.3.3.1 Approches . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.3.2 Tests de la parallélisation . . . . . . . . . . . . . . . . . . . 173.3.3.3 Implémentations et résultats de la parallélisation . . . . . . 173.3.3.4 Tests compilation JIT . . . . . . . . . . . . . . . . . . . . . 183.3.3.5 Implémentations et résultats de la compilation JIT . . . . . 193.3.3.6 conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.4 Production des isocontours 3D avec VTK . . . . . . . . . . . . . . . 203.3.5 Compréhension du module VTK . . . . . . . . . . . . . . . . . . . . 203.3.6 implémentation de l’isocontour 3D et résultats . . . . . . . . . . . . 223.3.7 Production des nuages de points . . . . . . . . . . . . . . . . . . . . 22

3.3.7.1 Étude bibliographique et test . . . . . . . . . . . . . . . . . 223.3.7.2 Création du module cesium3dtiles . . . . . . . . . . . . . . 233.3.7.3 Usage du module cesium3dtiles . . . . . . . . . . . . . . . . 243.3.7.4 Implémentation et résultats . . . . . . . . . . . . . . . . . . 253.3.7.5 Randomisation des coordonnées des nuages des points . . . 26

3.3.8 Travaux annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.4 Travaux en cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.1 Création automatique et adaptation des fichiers de configuration . . 273.4.2 Portage des travaux Cesium vers ThreeJS . . . . . . . . . . . . . . . 27

3.5 La branche de développement parallèle . . . . . . . . . . . . . . . . . . . . . 283.6 Travaux exploratoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.6.1 Merge isocontour vtk et point cloud avec branche parallèle . . . . . 283.6.2 Distribution du calcul en réseau . . . . . . . . . . . . . . . . . . . . . 283.6.3 Tests de la technologie CUDA . . . . . . . . . . . . . . . . . . . . . . 28

4 Retours critiques 294.1 Expérience du stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Préambule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.1.2 Difficultés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.1.3 Apports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.2 Limitations techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3 Proposition d’amélioration de l’environnement de développement et de dé-

ploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3.1 Cluster de machines . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3.2 Machine Virtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.3.3 Conteneur Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 MOOCs Master 2 315.1 Python 3 : des fondamentaux aux concepts avancés du langage . . . . . . . 315.2 Maîtriser le shell Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6 Conclusion 32

Page 11: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Bibliographie 33

Page 12: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Table des figures

2.1 Organigramme du LACy et de Météo-France Réunion . . . . . . . . . . . . 32.2 Site de Météo-France Réunion . . . . . . . . . . . . . . . . . . . . . . . . . . 42.3 Site de l’Université de La Réunion . . . . . . . . . . . . . . . . . . . . . . . 4

3.1 Example isoligne : isobares(985-1030 par 5) des pressions atmosphériqueshorizontales au niveau de la mer, sur la zone Europe-Atlantique, le 02 Fé-vrier 1998 à 12h00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Example isosurface : fines goute d’eau des précipitations du Cyclone Ber-gitta, le 18 Janvier 2018 à 17h00 . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Example projection : transformation d’une portion de ellipsoïde de référencegéodésique représentant la surface de terrestre, sur une surface plane à l’aided’un modèle mathématique réduisant 3 dimensions à 2 . . . . . . . . . . . . 11

3.4 Concurrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.5 Parallélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.6 organisation du projet Weather3D . . . . . . . . . . . . . . . . . . . . . . . 123.7 Organisation de la chaîne de production radar . . . . . . . . . . . . . . . . . 133.8 Répartition temporelle de l’exécution de la chaîne de production radar . . . 133.9 Comparaison temporelle pour l’exécution de 8 tâches séquentielles (VERT)

et parallèles numctl (BLEU) taskset (ROUGE) . . . . . . . . . . . . . . . . 163.10 Optimisation des scripts Bash de pour la production radar . . . . . . . . . . 163.11 Comparaison temporelle entre l’exécution de 8 tâches séquentielles (BLEU)

et parallèles avec multiprocessing (ROUGE) . . . . . . . . . . . . . . . . . . 183.12 Comparaison temporelle entre l’exécution d’une tâche sans compilation JIT

et avec compilation numba (ROUGE) . . . . . . . . . . . . . . . . . . . . . 193.13 Isosurface VTK des gouttelettes d’eau des précipitation du cyclone Ber-

guitta à 17h00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.14 Optimisation des scripts Python de pour la production des isocontours 3D

avec VTK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.15 Description d’un fichier PNTS . . . . . . . . . . . . . . . . . . . . . . . . . . 233.16 Diagramme de classe du module cesium3dtiles . . . . . . . . . . . . . . . . . 243.17 Nuage de point des gouttelettes d’eau des précipitation du cyclone Berguitta

à 17h00 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.18 Comparaison entres un nuage de points ordonnés et randomisés . . . . . . . 26

5.1 FUN MOOC : avancement mooc Python 3 . . . . . . . . . . . . . . . . . . 31

Page 13: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

5.2 FUN MOOC : avancement mooc Bash . . . . . . . . . . . . . . . . . . . . . 31

Page 14: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 1

Introduction

Ce rapport de stage est rédigé dans le cadre de mon stage de fin d’étude pour le Master 2Informatique à l’Université de La Réunion, en 2017-2018. Ce stage est l’occasion pour l’étudiantet le futur salarié de mettre en pratique, au sein d’un environnement professionnel son bagagethéorique et expérimental acquis tout au long de sa formation. Il doit aussi nous permettre denous familiariser avec le cadre, les règles , les traditions et contraintes d’une entreprise.

Mon stage s’est déroulé au sein de Météo-France Réunion, avec le Laboratoire de l’Atmosphèreet des Cyclones. Le stage de 6 mois doit s’inscrire dans une thématique de recherche pour unproblème posé par l’entreprise. Mon sujet s’articule autour de l’optimisation et l’améliorationd’une chaîne de production d’objets en 3 dimensions dans le cadre du projet Weather3D.

Cet écrit est organisé en trois grandes parties. La première partie présente l’entreprise d’accueilet son organisation. La deuxième partie traite du stage en lui-même. C’est à dire ses environne-ments, mais principalement les travaux effectués. Cette partie est développée de façon logiqueplus que chronologique. Dans la troisième partie, je prendrai du recule pour parler du stage avecun regard critique et constructif. L’avant dernière partie sera consacrée à la présentation desdeux MOOCs suivis dans le cadre du stage. Enfin, ce rapport se clôturera pas une conclusion.

Dans un souci de sécurité et de confidentialité aucun code source venant de l’entreprise ne seraprésenté. Néanmoins, je me permettrais de prendre quelques légères libertés pour présentermes travaux et rendre mes propos plus éloquents avec des figures et quelques exemples deprogrammes.

1

Page 15: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 2

Présentation de l’entreprise d’accueil

2.1 Météo-France Réunion

Météo-France est un service météorologique et climatologique national. C’est une entité publicadministratif placé sous la tutelle du ministère de l’Ecologie, du Développement Durable et del’Energie. Sa mission première consiste à surveiller et à prévoir le comportement de l’atmo-sphère, et à assurer la sécurité des personnes et des biens lors des événements météorologiquesdangereux.

Météo-France est implanté dans chaque département français de métropole, d’outre-mer etdans toutes les parties du globe où la France est présente, y compris les Terres Australes etAntarctiques.

A La Réunion, il est notamment en charge des activités suivantes :

— l’émissions de prévisions météorologiques afin de prévoir le temps sensible jusqu’à 5jours d’échéance

— l’observation et l’acquisition de données de tous types (pluviométrie, vent, etc)

— la conservation, l’exploitation et la valorisation des données météorologiques acquisesdans le réseau d’observation

Outre ses activités régionales, il possède aussi un statut international attribué par l’OrganisationMétéorologique Mondial, en qualité de Centre Météorologique Régional Spécialisé (CMRS)Cyclone pour le Sud Ouest l’océan Indien. Dans le cadre de cette responsabilité, le CMRS dela Réunion a trois missions précises :

— une mission institutionnelle de surveillance et d’alerte des perturbations tropicalesau profit des 15 pays membres du comité des Cyclones tropicaux du Sud Ouest del’océan Indien : Afrique du Sud, Botswana, Comores, France (Réunion/Mayotte),Kenya, Lesotho, Madagascar, Malawi, Maurice, Mozambique, Namibie, Seychelles,Swaziland, Tanzanie, Zimbabwe

— une mission de recherche dans les domaines des cyclones tropicaux : à cet effet,une équipe de recherche et développement de haut niveau, la Cellule de Recherche

2

Page 16: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Cyclone (CRC), a rejoint le CMRS depuis août 1998. Son objectif est d’améliorer lescapacités de prévision du CMRS en élaborant de nouveaux modèles et en affinantles outils de prévision objective

— une mission de formation des météorologistes de la Région Afrique, sous forme destage OMM tous les deux ans et d’accueil de prévisionnistes pendant la saison cy-clonique

2.2 Laboratoire de l’Atmosphère et des Cyclones (LACy)

Le Laboratoire de l’Atmosphère et des Cyclones est une unité de recherche tripartite, l’Univer-sité de La Réunion, le Centre National de Recherche Scientifique et Météo-France.

Le LACy est membre de l’OSU-R (Observatoire des Sciences de l’Univers de La Réunion). Cesdeux structures sont mandatées par l’Université de La Réunion et le CNRS pour soutenir etdévelopper l’observation et la valorisation scientifique des observations de l’OPAR (Observa-toire de physique de l’Atmosphère de La Réunion) qui regroupe les stations d’observations duMaïdo, de Gillot et du Moufia.

Les objectifs du LACy s’articulent autour de trois équipes :

— l’équipe "Stratosphère" qui travaille sur la physico-chimie et les tendances de l’ozone,de la vapeur d’eau et des aérosols stratosphériques

— l’équipe "Troposphère" qui développe des thématiques autour des échanges troposphère-stratosphère, des transports de polluants sur l’océan Indien et l’étude des panachesvolcaniques

— l’équipe "Cyclone" qui étudie l’intensité, la trajectoire et les précipitations associésaux cyclones et à la convection tropicale

ÉQUIPETROPOSPHÈRE

ÉQUIPECYCLONES

Responsable :

El Hassan BENCHERIF

Permanents :

Nelson BEGUEOlivier DELAGE Thierry PORTAFAIX

Doctorants :

Jean-Maurice CADETKevin LAMYRené Tato LOUATahina RAMAROLAHY

Responsable :

Olivier BOUSQUETPermanents :Christelle BARTHESoline BIELLIFabrice CHANE-MINGQuoc-Phi DUONGKamal EL OMARIRémy LEE-AH-SIEM Sylvie MALARDEL Dominique MEKIESAnne RECHOUDoctorants :Thomas HOAREAUEdouard LEESPost-Doctorants :Marine CLAEYSJonathan DURANDCallum THOMPSONChia-Lun TSAIDamien VIGNELLES

Responsable :

Valentin DUFLOT

Permanents :

Soline BIELLIJérôme BRIOUDEJean-Pierre CAMMASStéphanie EVANGuillaume GRIMBRETIERE Jimmy LECLAIR DE BELLEVUEFrançoise POSNY Pierre TULET

Doctorants :

Brice FOUCARTDamien HERONBert VERREYKEN

Post-Doctorants :

Joris PIANEZZEHélène VEREMES

SERVICE INFORMATIQUEResponsable : Soline BIELLI

SERVICE FINANCIER ET ADMINISTRATIF

Soutien modélisation

Soline BIELLI(correspondant formation)

Responsable

Sandrine PRUNIER

Gestionnaire ReNovRisk

Nina BREZNIK

Systèmes opérationnels de PN Météo-France

Quoc-Phi DUONGDominique MEKIES

Système réseaux et gestion du parc informatique

Frédéric JEAMBLURémy LEE-AH-SIEM

ÉQUIPE DE DIRECTION

Pierre TULET, Directeur Directeurs Adjoints :

El Hassan BENCHERIF – Olivier BOUSQUETValentin DUFLOT (responsable scientifique OPAR)

ÉQUIPESTRATOSPHÈRE

Figure 2.1 – Organigramme du LACy et de Météo-France Réunion

3

Page 17: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Ces équipes sont soutenus et encadrés par des services administratifs, informatiques et tech-niques.

2.3 Organisation du LACy et de Météo-France

Figure 2.2 – Site de Météo-France Réunion

Figure 2.3 – Site de l’Université de La Réunion

Le LACy est organisé en deux pôles situés respectivement sur le site de Météo-France auChaudron et sur le campus Nord de l’Université de La Réunion au Moufia.

2.4 Contact avec l’entreprise

Le stage se déroule au sein du service informatique qui est en charge de la gestion du parcinformatique, du soutien en modélisation et des systèmes opérationnels de prévision numé-

4

Page 18: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

rique de Météo-France. Nous somme affectés au pôle “des systèmes opérationnels de prévisionnumérique”, sous la tutelle de monsieur Dominique MEKIES, ingénieur-chercheur au LACy.

5

Page 19: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 3

Présentation du stage

3.1 Cadre du stage

3.1.1 Contexte

Ce stage s’inscrit dans le cadre du projet Weather-3D initié en 2015 à l’occasion de l’activitésoutenue du Piton de la Fournaise à l’île de la Réunion. Il s’agissait alors pour le LACY dedévelopper une chaîne d’activation souple et rapide du modèle de dispersion de panachesde SO2 Flexpart couplé au modèle météorologique Arôme, ainsi qu’à la mise en oeuvre deméthodes de visualisation innovantes, légères et intuitives des sorties dudit modèle.

C’est ainsi que les chercheurs ont pu déclencher des runs Flexpart simplement depuis une inter-face web pour ensuite récupérer les sorties du modèle afin de les visualiser en trois dimensionssur leur navigateur sans avoir recours au moindre plugin.

Cette visualisation naturelle en 3D de la diffusion des panaches de dioxyde de soufre, depuisun navigateur sur tablette a permis par exemple aux pilotes des ULMs chargés des mesuresin-situ d’établir plus rapidement et plus précisément leurs plans de vol.

En juin 2016, à l’occasion de la campagne STRAP-Etna, l’outil a été amélioré et adapté aucas de l’Etna. Flexpart, couplé cette fois au modèle de Météo-France Arpège, a fourni, à lademande via internet, ses résultats aux chercheurs qui ont pu les visualiser en trois dimensionssur un nouveau domaine géographique englobant cette fois la Sicile.

L’objectif du projet Weather-3D est de construire un outil généralisant les réalisations décritesci-dessus à n’importe quel type de données météorologiques issues de modélisations ou d’obser-vations. Weather-3D offre en amont des méthodes d’intégration de données météorologiquescalculées ou observées, et en aval une visualisation 3D interactive de ces données sur n’importequel navigateur webGL de n’importe quelle plate-forme ou système d’exploitation.

3.1.2 Sujet et objectifs

L’intitulé exacte de l’offre du stage est “Optimisation des chaînes de production d’objetsmétéorologiques en trois dimensions dans le cadre du projet Weather-3D”. Il porte sur la partie

6

Page 20: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

amont du projet. Il ambitionne comme objectif principal l’optimisation des scripts de productionexistants :

— en réécrivant les modules nécessaires avec les technologies appropriés

— en parallélisant certains calculs via des techniques de parallélisation basées sur lesthreads ou sur les process

— en distribuant certains calculs sur le réseau

— et éventuellement des test de portage des calculs sur processeur graphique NVI-DIA pour tenter d’améliorer les performance des processus qui ne pourraient ni êtreparallélisés ni distribués

Le deuxième objectif est l’amélioration des classes de production et l’ajout de nouvelles fonc-tionnalités.

La partie aval, est prise en charge par mon collège monsieur Dalili AHAMADA. il s’intitule“Amélioration, développement et documentation de classes de visualisation 3D” et porte surla visualisation sur navigateur webGL.

3.1.3 Planning

La durée permise totale du stage est fixée à six mois, durant laquelle toute les étapes im-portantes pour son bon déroulement sont comprises. Le stage commence officiellement le 15janvier 2018 et se clôture le 15 juillet 2018.

3.1.4 Ressources mises à disposition

Il nous a été mis à disposition un local, avec des bureaux et des ordinateurs prêtés par Météo-France. Pour accéder au site on nous a remis des badges d’accès. De plus, un accès à laplateforme wordpress de documentation technique et de planification administratif nous a étéattribué.

3.1.5 Environnement informatique

3.1.5.1 Matériels

— PC de développement : Windows 7 professionnel 32 bit, processeur Intel Core i3(4 coeurs logiques) cadencé à 3.30GHz, 2Go de RAM, sans carte graphique dédié

— Machine personnelle : Debian 9 Stretch 64 bit, processeur Intel Core i5 (4 coeurslogiques) cadencé à 3.4GHz, 8Go de RAM, carte graphique NVIDIA GEFORCE940M

— Serveur de Test (machine virtuelle) : CentOS Linux, processeur Intel Xeon E5(8 coeurs) à 2.4GHz, 32Go de RAM

7

Page 21: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

3.1.5.2 Logiciels

— git : logiciel de gestion de versions décentralisé. C’est un logiciel libre créé par LinusTorvalds, auteur du noyau Linux, et distribué selon les termes de la licence publiquegénérale GNU version 2

— Vim : éditeur de texte en ligne de commande, c’est un logiciel permettant la mani-pulation de fichiers texte. Il est directement inspiré de vi (un éditeur très répandusur les systèmes d’exploitation de type UNIX), dont il est le clone le plus populaire.Son nom signifie d’ailleurs Vi IMproved, que l’on peut traduire par « VI aMélioré »

— MobaXterm : émulateur de terminal linux pour windows. Il fournit tous les outilsde réseau distant (ssh,x11,rdp,vnc,ftp,scp,etc) et des commandes unix (bash, ls, cat,sed, grep,awk,rsync,etc)

— Mozilla Firefox : navigateur web (webGL) libre et gratuit, développé et distribuépar la Mozilla Foundation

— Panoply : application java développé par la NASA pour la visualisation de fichiersau formats matriciels ou vectoriels (netCDF, GIF, JPEG, PNG, TIFF, etc)

3.1.5.3 Environnements de développements

— Bash : acronyme de Bourne-Again shell. C’est un interpréteur en ligne de commandede type script. C’est le shell Unix du projet GNU

— Python 2.7 : langage de programmation objet, multi-paradigme et multiplate-formes. Il favorise la programmation impérative structurée, fonctionnelle et orientéeobjet. Il est doté d’un typage dynamique fort, d’une gestion automatique de la mé-moire par ramasse-miettes et d’un système de gestion d’exceptions

— Anaconda : suite scientifique pour Python développé par l’entreprise Continuum quifournit de nombreux modules et bibliothèques adaptés à l’enseignement et aux calculsscientifiques. Il s’étend des sciences de données jusqu’à la visualisation en passantpar l’analyse informatique et l’apprentissage automatique. Il fournit notamment labibliothèque Numpy (pour la manipulation de matrice multidimensionnels et desfonctions mathématiques opérant sur des tableaux)

— Node.js : plateforme logicielle libre et événementielle en JavaScript orientée vers lesapplications réseau qui doivent pouvoir monter en charge. Node.js est un environne-ment bas niveau permettant l’exécution de JavaScript côté serveur

— Apache 2 : serveur HTTP créé et maintenu au sein de la fondation Apache. C’estle serveur HTTP le plus populaire du World Wide Web. Il est distribué selon lestermes de la licence Apache

— Bootstrap : collection d’outils utile à la création du design (graphisme, animationet interactions avec la page dans le navigateur de sites et d’applications web. C’estun ensemble qui contient des codes HTML et CSS, des formulaires, boutons, outilsde navigation et autres éléments interactifs, ainsi que des extensions JavaScript enoption. C’est l’un des projets les plus populaires sur la plate-forme de gestion dedéveloppement GitHub

8

Page 22: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

— Three.js : bibliothèque JavaScript pour créer des scènes 3D dans un navigateurwebGL. Elle peut être utilisée avec la balise canvas de HTML5 sans avoir besoin deplugins supplémentaires

3.1.5.4 Autres

— Donnée numérique : il s’agit de données brutes et archivées issuent des mesuresdes radar Colorado et Villers

— Objet 3D : modélisation en trois dimensions des données radars produites ultérieu-rement

3.2 Généralités

3.2.1 Formats des fichiers

Dans le tableau ci-dessous est représenté l’ensemble des format de fichiers de travail.Type général Format Données Description

Fichiers TextesTXT texte fichiers de stockage de données temporelsLATLON texte représentation avec la latitude et la longitudeXYZ texte représentation en coordonnées X,Y,Z

Archives GZ binaire fichiers compressés pour l’archivage

ImagesPNG binaire images matricielles non compresséesGRD binaire gestion de remplissage multi-couleurs

Objets 3D

CSV texte représentation tabulaire de la donnéeOBJ+MTL texte description géométrique d’objets 3DCOLLADA texte description d’objet 3D en XMLGLTF binaire+texte représentation de modèles et scènes 3DLAS binaire représentation nuages de pointsPNTS+JSON binaire+texte représentation avancée nuages de points

Autres NETCDF binaire stockage tabulaire de données scientifiques

3.2.2 Concepts et définitions

Avant de concrètement traiter le sujet, certaines notions importantes doivent être abordés oudéfinis.

— Isoligne : ligne joignant des points d’égale valeur sur un espace 2 dimensions. Ellesépare des zones de faibles valeurs et des zones de valeurs plus élevées. Elles sontcouramment employées démarquer sur des cartes (météorologiques, géographiques oumédicales) des zones de basses et hautes valeur d’une grandeur (pression, profondeur,précipitation, vent, altitude, température, concentration)

— Isosurface : c’est l’analogue en 3 dimensions d’une isoligne. Mathématiquement,l’isosurface de valeur c s’exprime pas une fonction f définie par :

{(x, y, z) ∈ R3, f(x, y, z) = c}

9

Page 23: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.1 – Example isoligne : isobares(985-1030 par 5) des pressions atmosphériques horizontalesau niveau de la mer, sur la zone Europe-Atlantique, le 02 Février 1998 à 12h00

Figure 3.2 – Example isosurface : fines goute d’eau des précipitations du Cyclone Bergitta, le 18Janvier 2018 à 17h00

— Projections : consiste en l’opération de transformation des coordonnées dans un sys-tème de coordonnées spatiales vers un autre. Cette opération est réversible. Exemple :projection qui transforme les cartes sur la surface de l’ellipsoïde (planète) en repré-sentations cartographiques planes (planisphère)

— Système d’Exploitation : ou Operating System OS (en anglais) est un ensemblede programmes qui dirige l’utilisation des ressources d’un ordinateur par des logi-ciels applicatifs. Il joue le rôle d’interface entre l’humain et le matériel. Il reçoit des

10

Page 24: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

demandes d’utilisation des ressources de l’ordinateur (mémoire centrale, mémoire destockage, unité principale de calcul, unité de calcul graphique, cartes de communi-cation, périphériques d’Entrée/Sortie). Le système d’exploitation gère les demandesainsi que les ressources nécessaires, évitant les interférences entre les logiciels. L’OSdoit aussi optimiser la gestion de ces ressources à travers des mécanisme complé-mentaires comme la concurrence et le parallélisme

Figure 3.3 – Example projection : transformation d’une portion de ellipsoïde de référence géodé-sique représentant la surface de terrestre, sur une surface plane à l’aide d’un modèle mathématiqueréduisant 3 dimensions à 2

— Processus et Processus léger : un processus est un programme en cours d’exécu-tion par un système d’exploitation, dans la mémoire centrale. Il dispose d’un espaced’adressage en mémoire pour stocker la pile et les données de travail. Le processusléger est similaire à un processus normal à l’exception près que chaque processus lé-ger partage sa mémoire avec d’autres processus légers dont ils ont le même processusparent

— Concurrence : paradigme tenant compte, dans un programme (abstraction d’unSystème d’Exploitation), de l’existence de plusieurs piles sémantiques qui peuventêtre appelées threads, processus ou tâches. L’objectif étant de permettre à chaque piled’avoir accès aux ressources le plus rapidement possible et en quasi-simultanémentavec d’autres piles. La concurrence ouvre la possibilité de système d’exploitationmulti-tâches même sur une architecture matérielle avec une seule unité de calcule.La concurrence n’apporte aucun gain sur le temps global

— Parallélisme : consiste en l’exploitation d’une architecture matérielle multi-coeurspar un programme dont les tâches sont indépendantes, dans le but de diminuer sontemps d’exécution. Le parallélisme n’est pas la concurrence

— Compilation à la volée : aussi connue en anglais sous le nom de Just-In-Timecompilation, c’est une technique visant à améliorer la performance de systèmesbytecode-compilés par la traduction de bytecode en code machine natif au momentde l’exécution

11

Page 25: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.4 – Concurrence

Figure 3.5 – Parallélisation3.3 Travaux réalisés

3.3.1 Bibliographie et étude de l’existant

3.3.1.1 Organisation de Weather3D

Figure 3.6 – organisation du projet Weather3D

Le projet Weather3D est organisé en deux parties distinctes. La première pour la productiond’objet 3D météorologique et la deuxième pour leur visualisation.

L’ensemble des travaux réalisés ne concerne que la partie production du projet. La partievisualisation est confié à mon collègue dalili AHAMADA.

3.3.1.2 Chaîne de production des objets 3D

La production prend en entrée la donnée issue des radars (Colorado et Villers) pour sortir unemodélisation en trois dimensions du phénomène mesuré . On parlera de chaîne de productionradar pour désigner ce mécanisme.

Cette chaîne est réalisé par un ensemble de scripts Bash, Python, Perl, Ruby et JavaScript quisont répartis sur 4 processus successifs :

— rada_production : rapatrie les données brutes archivée, puis les décompresse, etenfin exécute quelques traitements

— radar2netcdf : les données sont miseen format NETCDF

12

Page 26: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

— iso_surface : calcul des models 3D

— cleaner : suppression des données temporelles de travail

Figure 3.7 – Organisation de la chaîne de production radar

3.3.1.3 Tests de la chaîne de production

La chaîne de production est éprouvé en utilisant les données de réflectivité radar du cyclonetropical Bergitta, à la date du 18 janvier 2018 à 17h00.

Figure 3.8 – Répartition temporelle de l’exécution de la chaîne de production radar

En s’appuyant sur l’outils Bash time, j’ai chronométré l’exécution de cette chaîne de productionà 7 minute 41 seconde. La figure illustre la répartition temporel de cette durée.

13

Page 27: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

3.3.1.4 Voies d’optimisations

Il apparaît évident que les processus de production les plus rentables à optimiser sont dansl’ordre rada_production puis iso_surface. Les processus radar2netcdf et cleaner mêmeoptimisés à 100% nous fait gagner q’au maximum 20 seconde. Il serait donc judicieux ne pasen faire une priorité pour l’optimisation.

3.3.2 Optimisation de la chaîne de production des objets 3D : scripts Bash

3.3.2.1 Approches

— parallélisation des tâches indépendantes avec l’outils numactl

— parallélisation des tâches indépendantes avec l’outils taskset

3.3.2.2 Préliminaires

Définissons une tâche simple pour les tests de parallélisation à suivre. Cette tâche consiste àun script Bash qui compte de 0 à N.

N=$1for i in ‘ seq 0 $N ‘do

continuedone

Listing 3.1 – script Bash count.sh

3.3.2.3 Tests

Pour effectuer les tests, Nous créons huit tâches que nous exécutons séquentiellement puis enparallélisant.Ce nombre de tâche n’est pas arbitraire. Il s’agit du nombre de processeurs présentle serveur de test.

. / count . sh $1

. / count . sh $1

. / count . sh $1

. / count . sh $1

. / count . sh $1

. / count . sh $1

. / count . sh $1

. / count . sh $1

Listing 3.2 – Execution de 8 tâches en séquentiel

numactl −C 0 ./ count . sh $1 &numactl −C 1 ./ count . sh $1 &numactl −C 2 ./ count . sh $1 &

14

Page 28: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

numactl −C 3 ./ count . sh $1 &numactl −C 4 ./ count . sh $1 &numactl −C 5 ./ count . sh $1 &numactl −C 6 ./ count . sh $1 &numactl −C 7 ./ count . sh $1 &wait

Listing 3.3 – Execution de 8 tâches en parallèles avec numactl

t a s k s e t −c 0 . / count . sh $1 &ta sk s e t −c 1 . / count . sh $1 &ta sk s e t −c 2 . / count . sh $1 &ta sk s e t −c 3 . / count . sh $1 &ta sk s e t −c 4 . / count . sh $1 &ta sk s e t −c 5 . / count . sh $1 &ta sk s e t −c 6 . / count . sh $1 &ta sk s e t −c 7 . / count . sh $1 &wait

Listing 3.4 – Execution de 8 tâches en parallèles avec taskset

A l’aide de l’outil time, On mesure les temps d’exécution des huit tâches en séquentiel puis en lesparallélisant avec taskset et numactl. Le tableau ci-dessous illustre les résultats de ces mesures.N Temps en séquentiel (sec) Temps avec numactl (sec) Temps avec taskset (sec)10 0,048 0,012 0,014100 0,049 0,012 0,0131000 0,095 0,02 0,01810000 0,24 0,055 0,074100000 2,07 0,322 0,351000000 22 3,2 3,2210000000 221 32,6 31,8720000000 442 66 66,87100000000 2290 121 122

Graphiquement, on remarque que les modes séquentiels et parallèles sont linéaire. Les tempsdes exécutions parallélisées sont en moyenne 5 fois plus rapides que les exécutions séquentielles.Il est donc évident expérimentalement que la parallélisation apport un gain temporel.Par ailleurs, On remarque aussi que les résultats entre numactl et taskset sont identiques.

3.3.2.4 Implémentation

Il est décidé avec l’entreprise d’implémenter l’outil taskset. Les processus de production concer-nés sont rada_production, radar2netcdf et iso_surface. L’optimisation consiste en la pa-rallélisation de l’ensemble des tâches indépendantes et les boucles de ces processus.

15

Page 29: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.9 – Comparaison temporelle pour l’exécution de 8 tâches séquentielles (VERT) et pa-rallèles numctl (BLEU) taskset (ROUGE)3.3.2.5 Résultats

Figure 3.10 – Optimisation des scripts Bash de pour la production radar

Les résultats de l’implémentation illustrés par figure ci-dessous sont encourageant. L’utilisationde taskset nous fait gagner 32% sur le temps d’exécution.

3.3.3 Optimisation de la chaîne de production des objets 3D : scripts Python

3.3.3.1 Approches

— parallélisation des tâches indépendantes avec le module multiprocessing

— compilation à la volée (JIT) du code avec le module numba

16

Page 30: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

3.3.3.2 Tests de la parallélisation

Nous reprendrons la tâche count précédemment définie. Pour les tests nous exécuterons 8tâches séquentiellement puis de façon parallèle avec le module multiprocessing.

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−def count (number ) :

for i in range (0 , number , 1 ) :continue

number=100 # Nnumber_tasks=8for i in range (0 , number_tasks , 1 ) :

count (number )

Listing 3.5 – Execution de 8 tâches séquentielles

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−

from mul t i p ro c e s s i ng import Process

def count (number ) :for i in range (0 , number , 1 ) :

continue

number=100 # Nnumber_tasks=8for i in range (0 , number_tasks , 1 ) :

p=Process ( t a r g e t=count , args=(number , ) )p . s t a r t ( )

Listing 3.6 – Execution de 8 tâches en parallèles avec multiprocessing

Toujours à l’aide de l’outil time, nous relevons l’ensemble des temps d’exécution suivants.

On remarque plusieurs choses :

— la parallélisation est rentable que lorsque chaque tâche est suffisamment grosse

— la parallélisation est en moyenne 1,25 fois plus rapide que l’exécution séquentielle.

3.3.3.3 Implémentations et résultats de la parallélisation

L’implémentation de la parallélisation avec le module multiprocessing s’effectue sur le processusde production iso_surface. Il s’agit du programme Python iso_surface.py. Ce programme est

17

Page 31: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.11 – Comparaison temporelle entre l’exécution de 8 tâches séquentielles (BLEU) etparallèles avec multiprocessing (ROUGE)en charge de la production des fichiers 3D *.OBJ et leurs textures *.MTL), à partir de desfichiers *.NETCDF.

Malheureusement, aucun résultat n’a pu être obtenu car le programme n’est pas encore parallé-lisable. En effet, le programme utilise l’outil de visualisation 3D Mayavi. Mayavi est responsablede la production des isocontour 3D. Le problème de Mayavi est sa mauvaise gestion du serveurX, pour réaliser ses rendus graphiques. L’utilisation du module multiprocessing avec Mayavin’est donc pas compatible.

3.3.3.4 Tests compilation JIT

Montrons l’efficacité d’une exécution avec de la compilation à la volée par rapport à uneexécution normale.Nous utilisons le module numba pour la compilé la volée la tâche count.

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−

def count (number ) :for i in range (0 , number , 1 ) :

continuecount (1000)

Listing 3.7 – Execution d’une tâche sans compilation à la volée

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−

18

Page 32: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

from numba import j i t

@ j i tdef count (number ) :

for i in range (0 , number , 1 ) :continue

count (1000)

Listing 3.8 – Execution d’une tâche avec compilation à la volée (numba)

Figure 3.12 – Comparaison temporelle entre l’exécution d’une tâche sans compilation JIT et aveccompilation numba (ROUGE)

Les résultats des exécutions sont présentés par le précédent graphe.comme on l’a vu depuis le début des travaux, l’exécution normal est linéaire et croissant.Par contre, l’exécution JIT avec numba semble constant.

La compilation à la volée est donc une bonne solution pour diminuer le temps d’exécution duprogramme Weather3D.

3.3.3.5 Implémentations et résultats de la compilation JIT

L’ensemble des test de compilation à la volée ont été effectué dans ma machine personnellecar l’environnement du serveur de test est incomplète pour numba. De plus, la mise à jour decette environnement déstabilise en profondeur le programme de production radar.

19

Page 33: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

La solution de compilation à la volée du code ne sera facilement à implémenter dans le projetWeather3D. A mon niveau de connaissance du code, cette adaptation est estimée à 2 mois.

Cette durée est jugée inacceptable par l’entreprise.

3.3.3.6 conclusion

Nous avons vu que le script Python est incompatible avec la parallélisation et la compilation àla volée, car le premier se base sur le serveur X alors que le deuxième nécessite une modificationprofonde du code. Il faut donc chercher d’autres voies d’optimisation pour la production.

3.3.4 Production des isocontours 3D avec VTK

3.3.5 Compréhension du module VTK

VTK (pour Visualization ToolKit en anglais) est une Bibliothèque logicielle libre sous LicenceBSD de classes C++ pour la visualisation de données 2D/3D et le traitement d’image. Il estnotamment compatible avec le langage Python. Nous allons l’utiliser pour remplacer Mayavi.

La production des isocontour 3D se fera en plusieurs étape :

1. la récupération de la donnée en 3D dans une structure (liste, tableau numpy)

2. la création d’un objet VTK de type image de données pour stocker la donnée

3. l’extraction de l’isosurface pour une valeur donnée, à partir de de l’image de donnéesVTK

4. conversion de l’isosurface en objet géométrique

5. mise en place de la scène 3D

6. génération du rendu

7. enfin, l’exportation du rendu au format souhaité. Dans notre cas nous produisonsdes fichier *.OBJ

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−

import vtkimport numpy as np

### 1 − Generate 3∗4∗5 po in t s random data from va l eu 0 to 10data = np . random . random_integers ( low=0, high=10, s i z e =(3 ,4 ,5))

### 2 − Create vtkImageDate and f i l l i t wi th data## crea t e vtkImageDataimageData = vtk . vtkImageData ( )imageData . SetDimensions (3 , 4 , 5 )

20

Page 34: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

i f vtk .VTK_MAJOR_VERSION <= 5 :imageData . SetNumberOfScalarComponents (1 )imageData . SetScalarTypeToFloat ( )

else :imageData . A l l o c a t eS c a l a r s ( vtk .VTK_FLOAT, 1)

## f i l l vtkImageDatafor x in range ( 3 ) :

for y in range ( 4 ) :for z in range ( 5 ) :

va lue = data [ x ] [ y ] [ z ]imageData . SetScalarComponentFromFloat (3 , 4 , 5 , 0 , va lue )

### 3 − Compute i socon tour 3 from vtkImageDatai so_contour = vtk . vtkContourFi l t e r ( )# or iso_contour = v t k . vtkMarchingCubes ( )i f vtk .VTK_MAJOR_VERSION <= 5 :

iso_contour . SetInputConnect ion ( imageData . GetProducerPort ( ) )else :

i so_contour . SetInputData ( imageData )iso_contour . ComputeNormalsOn ( )iso_contour . SetValue (0 , 3 ) # i s o v a l u e 3

### 4 − Convert the image to a po l yda tamapper = vtk . vtkPolyDataMapper ( )i f vtk .VTK_MAJOR_VERSION <= 5 :

mapper . SetInput ( iso_contour . GetOutput ( ) )else :

mapper . SetInputConnect ion ( iso_contour . GetOutputPort ( ) )mapper . S c a l a rV i s i b i l i t yO f f ( )

### 5 − Put i t in 3d sceneacto r = vtk . vtkActor ( )ac to r . SetMapper (mapper )ac to r . GetProperty ( ) . Se tPo intS i z e (3 )ac to r . GetProperty ( ) . SetOpacity ( s e l f . conf igData . opac i ty )

### 6 − Renderingr endere r = vtk . vtkRenderer ( )r endere r . AddActor ( ac to r )r endere r . SetBackground (1 , 1 , 1 )r endere r . ResetCamera ( )

21

Page 35: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

renderWindow = vtk . vtkRenderWindow ( )renderWindow . AddRenderer ( r endere r )

### 7 − Export to i s o c o n t o u r _ f i l e . ob jobjExport = vtk . vtkOBJExporter ( )objExport . SetInput ( renderWindow )objExport . S e tF i l eP r e f i x ( " . / i s o c on t ou r_ f i l e " )objExport . Write ( )

Listing 3.9 – Exemple complet de génération d’une isosurface de valeur 3 au format *.OBJ, à partird’un pavet de 3*4*5 points dont les valeur sont comprises en 0 et 10,

3.3.6 implémentation de l’isocontour 3D et résultats

Figure 3.13 – Isosurface VTK des gouttelettes d’eau des précipitation du cyclone Berguitta à17h00

L’implémentation consiste à intégrer ce code en tant que méthode dans la classe Isosurface duprogramme isosurface.py. Pour son utilisation, il faut remplacer le code Mayavi par l’appel àcette méthode.

Les résultats aussi sont encourageant car l’utilisation de VTK nous fais gagner 7% sur le tempsd’exécution de la chaîne de production radar.

3.3.7 Production des nuages de points

3.3.7.1 Étude bibliographique et test

Un nuage de points est un ensemble de points de données dans un système de coordonnées. Àtrois dimensions, ces points se définissent en général par les coordonnées x, y et z et serventsouvent à représenter la façade d’un objet.

22

Page 36: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.14 – Optimisation des scripts Python de pour la production des isocontours 3D avecVTKPour notre utilisation, nous allons tenter de reproduire pratiquement les même objets 3D queles isosurface mais en nuage de points.

Après étude de l’outil Cesium, moi et mon collègue Ahamada se rendent compte que le formataccepté par Cesium pour le nuage de point est le *.PNTS. Les *.PNTS sont accompagnés detileset *.JSON.

Il faut maintenant trouver un outil pour la production de ces nuages de point. Mais il n’existepas solution toute faite pour leur production. Pour palier à ce problème nous n’avons que deuxvoies exploratoire :

1. la réutilisation d’un module existant : il s’agit de l’adaptation en Python2 du modulePython3 py3dtiles. Le module py3dtile est un projet Github pour la production detuile Cesium.

2. l’écriture d’un nouveau module à partir des spécification données du format

Après de nombreux adaptations et tests infructueuses du module py3dtiles, je décide de melancer à l’écriture du module cesium3dtiles pour la production des nuages de point Cesium.

3.3.7.2 Création du module cesium3dtiles

Figure 3.15 – Description d’un fichier PNTS

Le module cesium3dtiles produit les *.PNTS et les *.JSON. Les figures suivantes décrivent lemodule.

23

Page 37: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Figure 3.16 – Diagramme de classe du module cesium3dtiles

3.3.7.3 Usage du module cesium3dtiles

En reprenant, les données pour la production des isosurfaces, nous allons voir l’utilisation dumodule cesium3dtiles, à travers un exemple simple.

#!/ home/anaconda2/ bin / python# −∗− coding : u t f−8 −∗−

import numpy as npfrom c e s i um3d t i l e s import Pnts , T i l e s e t

### 1 − Generate 3∗4∗5 po in t s random data from va l eu 0 to 10data = np . random . random_integers ( low=0, high=10, s i z e =(3 ,4 ,5))

### 2 − Extrac t ion o f 3D po in t s wi th va l u e s between 3 and 6po s i t i o n s = [ ]c o l o r s = [ ]r tc_center = [ 0 , 0 , 0 ]for x in range ( 3 ) :

for y in range ( 4 ) :for z in range ( 5 ) :

va lue = data [ x ] [ y ] [ z ]

24

Page 38: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

i f value >= 3 and value <= 6 :p o s i t i o n s . append (x )p o s i t i o n s . append (y )p o s i t i o n s . append ( z )c o l o r s . append (0) #REDc o l o r s . append (0) #GREENc o l o r s . append (255) #BLEU

### 3 − Compute po in t c loud f i l e s and t i l e s e tpnts = Pnts ( po s i t i on s , rtc_center , c o l o r s )pnts . wr i t e ( " . / point_cloud_3to6 . pnts " )

t i l e s e t = T i l e s e t ( pnts )t i l e s e t . wr i t e ( " . / point_cloud_3to6 . j son " )

Listing 3.10 – Exemple complet de génération d’un nuage de points des point de couleur bleu pourles valeurs comprises entre 3 et 6, à partir d’un pavet de 3*4*5 points dont les valeur sont comprisesen 0 et 10,

3.3.7.4 Implémentation et résultats

Figure 3.17 – Nuage de point des gouttelettes d’eau des précipitation du cyclone Berguitta à17h00

L’implémentation de la production des nuages de points consiste à ajouter une méthode à laclasse Isosurface au même titre que pour la production des isosurfaces.

Mais les coordonnées de chaque point étant issues des indices des tableaux, les points sontalignées horizontalement et verticalement. Cela provoque des effets de grilles dû à la perspec-tive. Pour rendre la visualisation plus naturelle, on va désaligner ces points en leur ajoutant unfacteur aléatoire.

25

Page 39: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

3.3.7.5 Randomisation des coordonnées des nuages des points

Soit un point A(xa,ya,za) du nuage 3D, B(xb,yb,zb) est le résultat de la randomisation descoordonnées de A comme suit :

1. calcul de la valeur unitaire

∆x = max(X)−min(X)card(X)

∆y = max(Y )−min(Y )card(Y )

∆z = max(Z)−min(Z)card(Z)

2. calcul des facteurs aléatoires

δx = ∆x × random(lowx, highx)100

δy = ∆y × random(lowy, highy)100

δz = ∆z × random(lowz, highz)100

3. calcul des coordonnées xb,yb,zb du point B

xb = xa + δx

yb = ya + δy

zb = za + δz

Figure 3.18 – Comparaison entres un nuage de points ordonnés et randomisés

Visuellement on obtient des résultat qui se rapproche de ce que notre œil peut d’observer.

3.3.8 Travaux annexes

— l’une des tâches annexes lié au déroulement du stage est la rédaction de documen-tation technique des travaux réalisés. Cette documentation sert de base pour ledéploiement ou un le témoin d’une démarche d’exploration

26

Page 40: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

— moi et mon collègue Ahamda avons eu, à plusieurs reprises, à produire vidéos deprésentation et de valorisation du projet Weather3D.

— durant la phase de recherche pour la production des nuages de points, nous avonstester la production et la visualisation de nuages de points aux formats texte *.CSVet binaire *.LAS. Cette voie nos a permis de nous rendre compte que l’outil Cesiumn’accepte pas les formats autres que *.PNTS pour la visualisation des nuages depoints.

— pendant le production des isosurfaces VTK et nuages de points *.PNTS les objets 3dont dû être adapté à la visualisation sur Cesium. En effet, la mesure des données étantfaite en coordonnées longitude-latitude-niveau, il faut procéder à une projection versles coordonnées x-y-z. Cette projection étant déjà étudiée en amont et implémentéepour la production des isosurfaces Mayavi, il suffit de l’adapter à notre utilisation.

3.4 Travaux en cours

3.4.1 Création automatique et adaptation des fichiers de configuration

Les chaînes production et de visualisation des objets 3D font appel à deux fichiers de configura-tions pour les diriger. Ces fichiers sont écris à la main en amont. Le problème est que Weather3détant destiné à l’utilisation des scientifiques. Or ils ne savent pas forcement comment l’écrire.L’idée dans cette partie est de proposer un formulaire web qui permet sa création.

Ma première proposition pour l’utilisation du framework Django est rejeter par l’entreprise carelle est jugée trop lourde. Je propose une deuxième solution se basant sur l’environnement dedéveloppement existant :

— utilisation du serveur web Apache2

— utilisation des technologies web HTML5/CSS3, avec des pages pures html et desfeuilles de styles se basant sur Bootstrap. L’utilisation de Bootstrap nous permetd’avoir une plate-forme Responsive Web Design.

— réalisation des traitements avec Python2 à travers la passerelle CGI-Bin

L’application web pour la production des fichiers de configuration est nommée conform. Letableau suivant montre l’état d’avancement des travaux.

partie tâches état d’avancement

Formulaire Webfichier configuration pour la production 80%fichier configuration pour la visualisation 0%

Traitement du formulaire N.A 0%

3.4.2 Portage des travaux Cesium vers ThreeJS

L’entreprise Cesium consortium a annoncer au courant de 2018 une fusion avec une autreentreprise. Prochainement, le modèle économique de l’outil Cesium devrait suivre cette évo-lution. Ainsi on va se retrouver à payer l’utilisation. Cela concernera en particulier l’utilisationdes tuiles.

27

Page 41: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Pour rebondir sur cette évolution inattendue, le LACy réfléchit à 2 solutions à explorer :

1. mise en place d’un serveur de tuiles

2. migration vers la plate-forme ThreeJS

On nous a confié,à moi et à mon collègue Ahamada, de tester cette deuxième solution. Undébut de réflexion a déjà été effectué. La chaîne de portage des travaux est la suivante :

— ThreeJs pour la mise en place de la scène de base

— Qgis2threejs pour les textures de terrain

— J360 pour la capture de la scène 3D

— adaptation et ajouts des objets météorologiques 3D

3.5 La branche de développement parallèle

En parallèle de l’optimisation de la chaîne de production avec par les parallélisations (tasksetet multiprocessing) et le contournement du serveur X avec VTK, monsieur dominique MEKIESa repris le programme isosurface.py en language C.

Selon lui cela aurait accéléré certains calculs jusqu’à un facteur de 20. Mais la production desisosurfaces se base toujours sur le module Mayavi.

3.6 Travaux exploratoires

3.6.1 Merge isocontour vtk et point cloud avec branche parallèle

Il serait à mon avis intéressant de merger les deux branches de développement parallèles,production d’isosurface VTK et nuage de points avec l’optimisation avec le langage C.

3.6.2 Distribution du calcul en réseau

Lors de l’optimisation de la chaîne de production et après l’échec de l’implémentation de laparallélisation et la compilation JIT, j’ai proposé la distribution du calcul en réseau local. Aprèsdiscutions avec le tuteur cette solution est jugée non performante.

Je ne l’ai pas fait, mais il serait intéressant d’effectuer quelques tests pour mesurer les perfor-mances d’un calcul distribué.

3.6.3 Tests de la technologie CUDA

Il s’agit d’exploiter la puissance des puces graphiques des cartes NVIDIA pour paralléliser descalculs. En effet, pour les calculs multi-dimensionnels et matriciels les GPUs sont beaucoupplus adaptés.

Aucun vrai test n’a été effectué dans cette partie.

28

Page 42: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 4

Retours critiques

4.1 Expérience du stage

4.1.1 Préambule

Cette partie n’a aucune ambition de dénigrer l’entreprise ou son personnel. Elle doit simplementme permettre de partager mon expérience de stage tout au long de ces 6 mois.

4.1.2 Difficultés

Le stage en lui même n’a pas présenté de grosses difficultés. Le sujet étant assez modulaire,cela m’a permis de contourner certaines difficultés. Il faut néanmoins noter que son démarragel’a été car en plus de s’acclimater dans un environnent professionnel, il a fallut faire face auxnombreux échecs dus à la prise en main de l’environnement de développement. Une difficultéqui n’était pas bloquante mais morale fût la frustration face à ces nombreux échecs, auxblocages pendant plusieurs jours et à la pression d’exigence de résultats.

Enfin, j’ajouterai la dangerosité d’accès piéton au site Météo-France Réunion du chaudron parrapport à l’absence de trottoir, à l’éloignement de presque 100m du passage piéton et à lavitesse élevée des automobilistes.

4.1.3 Apports

Ce stage a été l’occasion de découvrir l’environnement professionnel sur une longue période etde participer à la gestion d’un projet dans une entreprise.

Ce stage se décrit aussi par son aspect humain car nous avons été accueillis dans un cadreconviviale et soutenus par les équipes de Météo-France.

C’est aussi le stage de l’apprentissage car ça nous a donné la possibilité de renforcer de nosbagages informatiques, mais aussi d’autres notions scientifiques et générales.

Enfin, çà été l’occasion de remises en cause par rapport à mes projets professionnels.

29

Page 43: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

4.2 Limitations techniques

Cette section va aborder quelques limitations techniques par rapport à l’environnement dedéveloppement matériel et logiciel pour proposer quelques voies d’améliorations. Elle a un butcritique et constructif.

L’environnement matériel était largement suffisant pour le développement car travaillant direc-tement sur l’éditeur de texte Vim, celui de demande pas beaucoup de ressources. Il s’agissaitd’ordinateurs prêtés pas Météo-France.

Par contre, des difficultés ce sont présentées au moment des tests car la manipulation d’objeten 3D demande beaucoup plus de puissance calcul et de la mémoire. De plus, la politiqueinterne nous a contraint à travailler sur Windows 7 et sans outils installé de visualisation 3D.

Un autre points à noter est la fragilité de l’environnement de développement et la rigiditéde l’environnement de déploiement. En effet, des mises à jour peuvent causer des instabilitésdes programmes et une seule version ou une seule instance du programme peut exister dans leserveur. Cela s’est ressentit lorsque nous devions nous partager l’accès au serveur pour effectuercertaines tâches.

4.3 Proposition d’amélioration de l’environnement de développement etde déploiement

4.3.1 Cluster de machines

Certains calcul deviennent totalement indépendants pendant la chaîne de production radar.D’autresinstances de la chaîne de production sont plus gourmands. Cette solution permettrait d’unepart de dimensionner notre chaîne de production lui attribuant un puissance de calcul et d’autrepart de faire tourner plusieurs instances de la chaîne de production ou visualisation.

4.3.2 Machine Virtuelle

C’est la solution la plus simple pour le déploiement et l’évolutivité de l’environnement dedéveloppement et de production. Elle a l’inconvénient de ne pas optimiser l’espace disque.

4.3.3 Conteneur Linux

Elle reprend l’avantage des machines virtuelles sans ses inconvénients.

30

Page 44: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 5

MOOCs Master 2

5.1 Python 3 : des fondamentaux aux concepts avancés du langage

Figure 5.1 – FUN MOOC : avancement mooc Python 3

Mooc réalisé pour la préparation du stage M2.

5.2 Maîtriser le shell Bash

Figure 5.2 – FUN MOOC : avancement mooc Bash

Mooc réalisé pendant le stage M2.

31

Page 45: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Chapitre 6

Conclusion

Ce stage au LACy et Météo-France a été très enrichissant car il m’a permit dans un premiertemps de faire face aux enjeux d’une entreprise, dans les domaines de l’informatique et dessciences. Et dans un deuxième temps de confronter mon bagage pédagogique et personnelavec un environnement professionnel.

Le stage lui-même m’a permit de travailler sur des notions informatiques qui touches auxmatériels lui même mais aussi logiciels comme le système d’exploitation et tous les mécanismesqui y régissent. Il m’a aussi permit d’aborder des concepts propres à d’autres sciences commela météorologie et le graphisme.

La mission principale du stage a été achevée mais des tâches annexes sont toujours en coursde développements.

Cette expérience à ouvert mes perspectifs face aux applications Web en 3 dimensions. Ellem’encourage aussi à poursuivre mes efforts et ma passion pour les applications mobiles.

32

Page 46: OPTIMISATIONDESCHAÎNESDE …lim.univ-reunion.fr/staff/fred/M2info/17-18/Stages/... · 2018-07-11 · Méteo-France Réunion et Laboratoire de l’Atmosphère et des Cyclones OPTIMISATIONDESCHAÎNESDE

Bibliographie

[1] Dan Nanni. How to run program or process on specific cpu cores on linux.http://xmodulo.com/run-program-process-specific-cpu-cores-linux.html,October 2013.

[2] Python Software Foundation. multiprocessing — process-based parallelism.https://docs.python.org/3/library/multiprocessing.html, 2018.

[3] Inc Anaconda. Compiling python code with @jit.http://numba.pydata.org/numba-doc/dev/user/jit.html, 2012.

[4] kitware. Visualize your data with vtk. https://www.vtk.org/.

[5] Oslandia. Python module to manage 3dtiles format.https://github.com/Oslandia/py3dtiles, 2018.

[6] Sean Lilley, Tom Fili, Patrick Cozzi, and Dan Bagnell. Point cloud.https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/TileFormats/PointCloud, 2018.

[7] Mr.doob. three.js. https://threejs.org, 2018.

33