ParaView / VTK / HDF5 un cas d utilisation : SimSERT. RDataDev OSUG 10 Avril 2015 Yves Rogez



Documents pareils
Programmation parallèle et distribuée

Programmation parallèle et distribuée

Initiation au HPC - Généralités

Introduction à NetCDF

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Panorama des solutions analytiques existantes

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

Introduction à la Visualisation Scientifique

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Certificat Big Data - Master MAthématiques

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

Livre. blanc. Solution Hadoop d entreprise d EMC. Stockage NAS scale-out Isilon et Greenplum HD. Février 2012

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

4 Exemples de problèmes MapReduce incrémentaux

Big Data et Graphes : Quelques pistes de recherche

La technologie Java Card TM

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

Rapport d activité. Mathieu Souchaud Juin 2007

Avantic Software Présentation de solutions GED pour mobiles (Gestion Electronique de Documents)

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

Portage d applications sur le Cloud IaaS Portage d application

pythonocc: une plateforme de développement agile d applications CAO.

Pentaho Business Analytics Intégrer > Explorer > Prévoir

Introduction à MapReduce/Hadoop et Spark

Les environnements de calcul distribué

1 Description générale de VISFIELD

PostgreSQL, le cœur d un système critique

Les technologies du Big Data

Mes documents Sauvegardés

Sommaire. 3. Les grands principes de GFS L architecture L accès de fichier en lecture L accès de fichier en écriture Bilan

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Éléments de programmation et introduction à Java

Visual Paradigm Contraintes inter-associations

Programmation C. Apprendre à développer des programmes simples dans le langage C

BIG DATA en Sciences et Industries de l Environnement

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Les applications webmapping en opensource. 1 Christophe Adriaensen

DataEXchanger. Echangez en toute simplicité. Atelier Dex Etat des lieux Dex X. Présentation DEX X

CH.3 SYSTÈMES D'EXPLOITATION

MANAGEMENT DES SERVICES INFORMATIQUES

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Journée Utiliateurs Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

Logiciel photothèque professionnel GUIDE D UTILISATION - 1 -

Anticiper et prédire les sinistres avec une approche Big Data

Big Data et Graphes : Quelques pistes de recherche

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Vulgarisation Java EE Java EE, c est quoi?

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

Groupe Eyrolles, 2004 ISBN :

Fouillez facilement dans votre système Big Data. Olivier TAVARD

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Limitations of the Playstation 3 for High Performance Cluster Computing

Catalogue Formation «Vanilla»

Retours d expériences et perspectives sur les aspects énergétiques

Archivage numérique de documents SAP grâce à DocuWare

<Insert Picture Here> Solaris pour la base de donnés Oracle

Stages ISOFT : UNE SOCIETE INNOVANTE. Contact : Mme Lapedra, stage@isoft.fr

Parallélisme et Répartition

ES Enterprise Solutions

Architecture des ordinateurs

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Installation d un poste i. Partage et Portage & permissions NTFS

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Benjamin Cornu Florian Joyeux. Les choses à connaître pour (essayer) de concurrencer Facebook.

et les Systèmes Multidimensionnels

Point sur les solutions de développement d apps pour les périphériques mobiles

Documentation d information technique spécifique Education. PGI Open Line PRO

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Stage : Développement du contenu Web

i-depots i-gedexpert i-compta i-bureau

les GDT dans le Système d Information informatisé Muriel Pinel Laurent Tabourot

Présentation du module Base de données spatio-temporelles

ARCHEOVISION. Centre de Ressources Numériques 3D. UMR 5607 du CNRS. R. Vergnieux IR-CNRS

Contribution à la conception à base de composants logiciels d applications scientifiques parallèles.

Diagrammes de Package, de déploiement et de composants UML

au Centre Inter-établissement pour les Services Réseaux Cédric GALLO

Charte d adhésion d un laboratoire au Mésocentre CIMENT

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI

Introduction à CUDA.

Vérifier la qualité de vos applications logicielle de manière continue

11 Février 2014 Paris nidays.fr. france.ni.com

Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing

Plan de cette matinée

7 avantages à la virtualisation des applications stratégiques de votre entreprise

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

Programmation parallèle et distribuée (Master 1 Info )

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

GEDEXPERT. La Gestion Electronique de Documents spécialement conçue pour les Experts Comptables VOTRE NOUVEL ASSISTANT POUR

OFFRE MDB Service & Architecture Technique. MyDataBall Saas (Software as a Service) MyDataBall On Premise

Infrastructures Parallèles de Calcul

Suite Jedox La Business-Driven Intelligence avec Jedox

Transcription:

ParaView / VTK / HDF5 un cas d utilisation : SimSERT RDataDev OSUG 10 Avril 2015 Yves Rogez

ParaView / VTK / HDF5 un cas d utilisation : SimSERT 1. Contexte : CONSERT / ROSETTA 2. ParaView : Fonctionnalités, pipeline VTK Traitement et visualisation sur cluster Retour d expérience 3. Structures de données : VTK et HDF5 RDataDev OSUG 10 Avril 2015 Yves Rogez

CONSERT / ROSETTA - SimSERT COmet Nucleus Sounding by Radiowave Transmission SimSERT : Propagation radar en transmission sur un grand domaine => ray-tracing Besoin pour l analyse scientifique et la préparation des opérations Visualisation et exploitation HDF5/VTK/ParaView/Qt

ParaView Visualisation de données 3D + temps : points, lignes, surfaces, volumes Spreadsheets et graphs 2D en complément Stéréoscopie Gestion d IHM avancées (VRPN) Outil de prototypage rapide Import de données Fonctions de traitement évoluées Construction d un pipeline intéractif Support de python (numpy & matplotlib) Vidéos, screenshots

ParaView Visualisation de données 3D + temps : points, lignes, surfaces, volumes Spreadsheets et graphs 2D en complément Stéréoscopie Gestion d IHM avancées (VRPN) Outil de prototypage rapide Import de données Fonctions de traitement évoluées Construction d un pipeline intéractif Support de python (numpy & matplotlib) Vidéos, screenshots

VTK: le pipeline Traitement des données Rendu Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer - Import données - Génération de primitives - Code python - Plugin C++ - Sélection de données - Déformations - Calcul, etc - Code python - Plugin C++ - Rendu 3D - Sortie fichier Flux des données : downstream

VTK: le pipeline Traitement des données Rendu Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer - Import données - Génération de primitives - Code python - Plugin C++ - Sélection de données - Déformations - Calcul, etc - Code python - Plugin C++ - Rendu 3D - Sortie fichier Flux des données : downstream Flux des demandes de mise à jour : upstream

VTK: le pipeline Traitement des données Rendu Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer - Import données - Génération de primitives - Code python - Plugin C++ - Sélection de données - Déformations - Calcul, etc - Code python - Plugin C++ - Rendu 3D - Sortie fichier Propriétés inchangées Flux des données : downstream Flux des demandes de mise à jour : upstream => seuls les filtres nécessaires sont mis à jour

VTK: le pipeline Contrôle des flux de données et d informations Modules de traitements indépendants, réutilisables et paramétrables interactivement Lazy update Streaming (découpage des données en pièces ou blocs structurés) si la capacité mémoire n est pas suffisante Aisément extensible en C++ (écriture de nouveaux filtres)

SimSERT Extension de la GUI de ParaView (Qt)

ParaView Process complètement automatisables via python pour générer des visualisations, des statistiques, etc

CIMENT et Parallélisation Distribution de job : embarrassingly parallel Aucune communication entre les process On ne parle pas ici de parallélisation Typique de l utilisation grille (CiGri) Parallélisation en mémoire distribuée Communication minimisée entre les process (MPI) Typique de l utilisation cluster (OAR) ou noeud Parallélisation en mémoire partagée La RAM est complètement partagée entre les threads Typique de l utilisation noeud ou CPU (OpenMP, pthreads)

CIMENT et Parallélisation Distribution de job : embarrassingly parallel Aucune communication entre les process On ne parle pas ici de parallélisation Typique de l utilisation grille (CiGri) Parallélisation en mémoire distribuée Communication minimisée entre les process (MPI) Typique de l utilisation cluster (OAR) ou noeud Parallélisation en mémoire partagée ParaView se situe à ce niveau La RAM est complètement partagée entre les threads Typique de l utilisation noeud ou CPU (OpenMP, pthreads)

SimSERT et Parallélisation (scratches temporaires non stockés!) Simulation(s) de propagation radar Indexation des résultats (To) Post-traitement, génération du signal radar sur l orbite de ROSETTA (Go) Visualisation Grille Cluster Noeud Statistiques Distribution de jobs indépendants (pthread) sur la grille en mode best-effort Exécution sur poste local (SimSERT-Viz), ou cluster (MPI) + OpenMP Noeud simple, serveur de calcul dédié (pvpython + numpy) (Mo)

ParaView : le Para Exécution parralèle : pipeline dupliqué, données découpées Traitement des données Rendu Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer Compositing Filtre 2 Source Filtre 1 Filtre 3 Mapper/Render Writer

ParaView : le Para Répartition data / render / control

ParaView : le Para Architecture de parallélisation modulable Architecture Taille des données sources Taille des données visualisées Résolution d affichage Contraintes matérielles (1) pvserver mode data + client paraview* (2) pvdataserver + pvrenderserver + client paraview* ++ (le traitement doit réduire les données) = = La machine client paraview doit avoir un GPU** puissant et une très bonne connexion réseau : Les données arrivent toutes sur un même noeud ++ + = Serveurs de data et render exactement couplés (même nombre), sinon on se retrouve dans la situation (1) (3) client paraview* seul = = = Une machine avec CPU + GPU** puissants (4) pvserver + client paraview* (5) mode tiling + Client paraview* + + = Tous les noeuds doivent être équipés de GPU** mais aussi de CPU puissants si les données modifiables sont importantes + Plus de noeud avec GPU** sont nécessaires (jamais testé en fait, vraiment utile pour les très hautes résolutions, multi-surfaces) * Le client paraview peut être la GUI de ParaView ou pvpython ** GPU = carte graphique, ne s applique pas pour les GPGPU dédiés (type Tesla)

ParaView : le Para Architecture de parallélisation modulable Architecture Taille des données sources Taille des données visualisées Résolution d affichage Contraintes matérielles (1) pvserver mode data + client paraview* (2) pvdataserver + pvrenderserver + client paraview* ++ (le traitement doit réduire les données) = = La machine client paraview doit avoir un GPU** puissant et une très bonne connexion réseau : Les données arrivent toutes sur un même noeud ++ + = Serveurs de data et render exactement couplés (même nombre), sinon on se retrouve dans la situation (1) (3) client paraview* seul = = = Une machine avec CPU + GPU** puissants (4) pvserver + client paraview* (5) mode tiling + Client paraview* + + = Tous les noeuds doivent être équipés de GPU** mais aussi de CPU puissants si les données modifiables sont importantes + Plus de noeud avec GPU** sont nécessaires (jamais testé en fait, vraiment utile pour les très hautes résolutions, multi-surfaces) * Le client paraview peut être la GUI de ParaView ou pvpython ** GPU = carte graphique, ne s applique pas pour les GPGPU dédiés (type Tesla)

ParaView : retour d expérience Les plus Parallélisation sans connaître MPI Flexiblité / évolutivité, bien adapté au projet scientifique Multi-plateforme Communauté très (ré)active VTK repose sur une architecture mature et efficace Les moins Instabilité (très peu de contrôle d erreur dans ParaView) Quelques points de détail pénibles dans l ergonomie Architecture logicielle de ParaView complexe (problèmes rencontrés en dérivant la GUI) Difficultés à la compilation (dépendances) Parfois très gourmand en RAM, avec les filtres de base

Structures de données : VTK Structures de données dédiées à la visualisation S avère très efficace en traitement également Structures Géométrie : points Topologie : cellules Données structurées / non structurées Série temporelles Données attachées vtkarrays assurent la coalescence des données Lecture à la demande Points faibles matrices creuses accès aléatoires partiels

HDF5 Un format de stockage pour des données binaires structurées, notamment pour les matrices à plusieurs dimensions Structuration arborescente auto-décrite (group, dataset) Gestion native d un système de méta-données (attributs) Outil bien pratique : HDFView API multiplateforme à plusieurs niveaux Haut niveau : portée dans de nombreux langages (C++, Java, python, IDL, matlab(?) Complète : C uniquement

HDF5 Un format de stockage pour des données binaires structurées, notamment pour les matrices à plusieurs dimensions Structuration arborescente auto-décrite Gestion native d un système de méta-données (attributs) Outil bien pratique : HDFView API multiplateforme à plusieurs niveaux Haut niveau : portée dans de nombreux langages (C++, Java, python, IDL, matlab(?) Complète : C uniquement

HDF5 Stockage et mapping mémoire (dataspaces) Accès aléatoires optimisés Stockage de matrices creuses Découpage des datasets en chunks Compression par chunk Gestion de familles de fichiers (découpage) API parallèle (MPI) Avec SimSERT Besoin de nombreux modes de lectures partielles et aléatoires Optimisation des paramètres de chunk : compromis taille des paquets / taille des fichiers

HDF5 & VTK Remarque : même approche de la structuration array plutôt que objet On peut donc directement lire un fichier HDF5 dans une structure VTK On optimise l utilisation et les allocations mémoire jusqu au rendu 3D

Quelques liens pour aller plus loin Présentations CED 2015 (Caroline Bligny, Bruno Bzeznik, Franck Pérignon - LJK/CIMENT) Site Kitware VTK + ParaView : http://www.kitware.com/opensource/paraview.html http://www.kitware.com/opensource/vtk.html Mise en place cluster ParaView: http://www.vtk.org/wiki/images/a/a1/cluster09_pv_tut_setup.pdf Site HDF5: http://www.hdfgroup.org/hdf5/ Site CIMENT : https://ciment.ujf-grenoble.fr/wiki-pub/index.php Site Visit : https://wci.llnl.gov/simulation/computer-codes/visit/ G-SCOP (INPG) Projet Visionnair : http://www.infra-visionair.eu./ Blog rosetta : http://blogs.esa.int/rosetta/