09/02/09 Analyse distribuée Une plongée dans PyROOT et l’accès aux données : CPU et réseau.

Slides:



Advertisements
Présentations similaires
Aujourdhui cest mardi vingt-quatre septembre Le plan! 1.Réviser 2.Ecouter 3.Parler 4.Ecrire 5.Jouer! Il fait beau Le but! les numéros entre 1 et 31.
Advertisements

Stockage et sauvegarde
Module Systèmes d’exploitation
Chapitre annexe. Récursivité
Exercice 2, chapitre 3.
Administration des bases de données
VOTable et lobservatoire virtuel solaire Marco Soldati Haute École Spécialisée de la Suisse de nord-ouest.
Comptimons chanson! (On compte à ) Par Juli Powers
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
15 - Subnetting.
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
Directeur de Thèse : Pr. Witold Litwin
Optimisation algébrique de requêtes relationnelles
Génération interactive dimages projectives : Application à la Radiothérapie Pierre BLUNIER Du 01/12/2002 au 28/03/2003 Centre Léon Bérard.
Intégration du système de production LHCb sur la DataGRID V. Garonne, CPPM, Marseille Réunion DataGRID France, 13 fv fév
Objectifs Présentation et utilisation du langage PERL
Lecture de graphiques a. b. c. d. e. a. b. c. 1) 2)a. 2)b. 3)a. 3)b.
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
Construction de Box-Plot ou diagrammes en boîtes ou boîtes à moustaches Construire une boîte à moustaches …
Recherche de similarité de séquences à grande échelle S. Penel, P. Calvat, Y. Cardenas LBBE, CCIN2P3 Calculs BLAST intensifs sur la plateforme TIDRA -
Prise en main rapide... Ou comment commencer avec RevisAudit ?
Cours n°3 Les formulaires
Récursivité.
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Atelier ADOMOCA Nov 2007 Hervé Le Berre Larborescence du projet Mocage.
Le matériel Les composants de l’ordinateur
Configuration de Windows Server 2008 Active Directory
Chapitre 21 Collections Partie I Introduction Une collection : est un objet qui regroupe multiple éléments dans une unité. Une collection est.
Gestion de Fichiers Arbres B.
SIMATIC Industrial Software
Les fichiers binaires en C++
Test bilan de calcul mental N°1 :
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Détection d’intrusions
Programmation concurrente
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Supervisors: Anna Kostikova, Nicolas Salamin
Chapitre 9 Les sous-programmes.
3ème partie: les filtres
1 Protection des arbres multicast avec une forêt duale Mohand Yazid SAIDI Bernard COUSIN Miklós MOLNÁR 15 Février 2006.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Copyright 2011 – Les Chiffres Copyright 2011 –
Structures des données
Faculté des sciences économique et gestion de Nabeul
Jean-Michel ILIE - novembre SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Programmation Système et Réseau (sous Linux)
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Mémoire périphérique Stockage primaire: Mémoire principale (RAM)
Rappels de statistiques descriptives
UTILISATION DE MIOGA Patrick LE DELLIOU
Tutorat 7 - Introduction au Routage et OSPF
1 Status… Rootuples provenant de TopAnalyze Première étude de W.
Tirer le meilleur parti d’Office /10/ Vincent Bippus IT/OIS 07 octobre 2014.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
TSkim Un outil pour découper les arbres ROOT. Introduction De nombreuses expériences de physique stockent leurs données sous forme d’arbres ROOT. Une.
Projet Python. ETAPE 1 Installation des packages python. Raccourcie crée automatiquement.
Réunion LCG-France, 7/4/2008 C.Charlot Acc è s aux donn é es Accès à dCache Problèmes de stageout des fichiers produits sur les WNs  Aussi pour le stagein.
Projet OASIS PCfEngine Encadrant : M. Keryell Date : Mercredi 02 Mars 2005 Pascal Virmaud.
Calcul CMS: bilan CCRC08 C. Charlot / LLR LCGFR, 3 mars 2008.
 Formulaires HTML : traiter les entrées utilisateur
Sample Image CGGVeritas University - Massy Monday 10 December 2007 EGEODE VO meeting of GEOCLUSTER user's on the EGEE grid.
2011/06/14 Efficacité des jobs d’Atlas Pierre Girard Réunion de travail avec Atlas CC-IN2P3, le 14 juin 2011.
INFSO-RI Enabling Grids for E-sciencE Data management Daniel Jouvenot IN2P3-LAL ORSAY - 02/02/2007.
INFSO-RI Enabling Grids for E-sciencE La gestion des données Daniel Jouvenot LAL-IN2P3-CNRS 18/06/2008.
Transcription de la présentation:

09/02/09 Analyse distribuée Une plongée dans PyROOT et l’accès aux données : CPU et réseau

Plan :  Contexte  Comment fonctionne PyROOT  Ouverture et lecture des fichiers  Différents environnements de travail  Interactif : lappsl4 Données sur lapp_data Données sur le SE (SAM et DAS)  Sur la grille Jobs sur différents WN Jobs sur même WN

Contexte : 3 PyROOT (interface Python) - chainage des fichiers à analyser ( fichiers concaténés lors de leur ouverture ) - lecture de l’ensemble des fichiers - merger les fichiers pour n’en avoir que un seul  CPU mesuré = CPU utilisé pour remplir des histogrammes / données ROOT : - Comparer CPU / réseau - Pour : - différentes localisations des données - différentes façons de travailler ( série / parallèle ) - jobs sur WN ou UI ? But :

Setup PyRoot (  Versions de ROOT:  /grid_sw/lhcb/lib/lcg/external/root  Versions de python:  /grid_sw/lhcb/lib/lcg/external/python setenv ROOTSYS /grid_sw/lhcb/lib/lcg/external/root/ d/slc4_ia32_gcc34/root setenv PYTHONDIR /grid_sw/lhcb/lib/lcg/external/Python/2.5/slc4_ia32_gcc34/ setenv PATH ${ROOTSYS}/bin:${PYTHONDIR}/bin:${PATH} setenv LD_LIBRARY_PATH ${ROOTSYS}/lib:${PYTHONDIR}/lib:${LD_LIBRARY_PATH} setenv PYTHONPATH ${ROOTSYS}/lib:${PYTHONPATH} #librairie castor ln -s ${LCG_LOCATION}/lib/libdpm.so libshift.so.2.1 setenv LD_LIBRARY_PATH ${PWD}:${LD_LIBRARY_PATH}

 Module(s) à importer  import ROOT  from ROOT import **** (Tfile, TH1F,…)  Ouverture de fichiers  Les uns à la suite des autres input = TFile.Open(“Name.root”) mytree=input.Get('n1') pas plus de 30Mo de fichiers  Chainer les fichiers et les ouvrir tous en même temps chain = TChain('n1') chain.Add(“Name.root”) entries=chain.GetEntries() PyROOT => Mélanger les fichiers ou autre méthode ROOT 5

Création d’un arbre avec une branche contenant des feuilles fNewFile = TFile("Name","Create,Recreate,…") fNewTree=TTree("Name", "Name") sBranch_struct="struct cluster_t{\ Int_t size;\ Float_t eX[SIZE];\ };" sClusters_struct=sClusters_struct.replace("SIZE",str()) gROOT.ProcessLine(sClusters_struct); clusters.eX=array('f',range(self.nPoints)) for j in range(0,self.nPoints): clusters.eX[j]=float(self.Variables[0][0][j]) self.Views.Fill() 6 Crée new file and new tree Crée structure branche avec feuilles Accrocher structure sur arbre Rempli variables de la branche

Script utilisé for File in sFileList: sRootName = '/lapp_data/lhcb/rospabe/Bs_JPsiEta/Prod/'+File chain.Add(sRootName) #get the entries entries=chain.GetEntries() #declaration of the variables R = array( 'l', [0] ) chain.SetBranchAddress("R",R) BsM = defineArray( 'd', ) chain.SetBranchAddress("BsM",BsM) nEvt=nEvt+chain.GetEntriesFast() for jentry in xrange(0,nEvt ): nb=chain.GetEntry(jentry) #loop over reconstructed Bd for j in range(0,R[0]): nBs+=1 mBs.Fill(BsM[j]/1000.) file.write("Mean Histo = "+str(mBs.GetMean())+"\n") Liste de fichiers à ouvrir concaténation dans chain Matcher les entrées Variables Remplissage histo Maximum histo

PyROOT au niveau réseau et CPU  Import ROOT et dépendances (depuis Lappsl) :  Exemple de plots que l’on va voir  CPU utilisé  Network Sleeping t(s) CPU(kb) t(s) Transfert (∆b)

Ouverture et lecture des fichiers (SE)  Ouverture fichiers a la suite :  input = TFile.Open(“rfio:…..root”) (0.4’’)  mytree=input.Get('n1') (0.1’’)  Pas plus de 30Mo de fichiers ⇒ memory leak t(s) CPU(kb) Import ROOT Getting trees Transfert (∆b) ~13’’ t(s)

Ouverture et lecture des fichiers (lapp_data)  Ouverture fichiers a la suite :  input = TFile.Open(/lapp_data/……root”) (0.1’’)  mytree=input.Get('n1') (0.1’’)  Pas plus de 30Mo de fichiers CPU(kb) Getting trees 1.2’’ => Mélanger les fichiers et autre methode ROOT Transfert (∆b) t(s) Getting tree

Chainer les fichiers et les ouvrir en même temps avec PyROOT ( 200 fichiers : tot = 500Mo) Fichiers sur Data_Local (gpfs) ou sur le SE (rfio) du Lapp  Accès plus rapide vers Data_Local que SE  CPU max 380MB  Réseau max 17MB.s -1  Réseau max 2MB.s -1 Accès depuis une UI de fichiers sur disque locaI / SE 11 9MB/s 0.9MB/s WN SE UI 710’’ 60’’ Protocoles ≠

Un seul fichier de 500Mo (5int, 1 double, 115 float)  Accès plus rapide vers Data_Local que SE (rfio) (5’’ de différence)  CPU max 530MB  Réseau max 18MB.s -1  Protocoles ≠ mais effet atténué car 1 seul fichier 12 70’’ 13MB/s WN SE UI Accès depuis une UI de fichiers sur disque locaI / SE

Accès depuis un WN de fichiers sur SE 200 fichiers ou un seul fichier de 500Mo (5int, 1 double, 115 float)  Accès plus rapide avec un seul fichier que 200  Temps ~ que depuis une UI  Temps < que depuis une UI  CPU max 530MB  Réseau max 17MB.s -1  Réseau max 5MB.s ’’ 50’’ 15MB/s 1MB/s WN SE UI

Tableau résumé d’accès à distance CPUDonnéesProtocole Temps (s) 200 fichiersUISE open rfio UIData_Local open WNSE open rfio fichier mergéUISE open rfio UIData_Local open WNSE open rfio  Merger les fichiers diminue temps total car moins d’I/O  Pas d’effet de cache car le taux de renouvellement des fichiers contenus dans le cache est très élevé

Accès depuis une UI de fichiers sur disque local / SE  Trois étapes itératives :  copier n fichiers localement (rfcp parallélisés) analyser les n fichiers pendant copie des suivants effacer fichiers analysés 15 WN SE UI

Conclusion 16 WN SE UI  Temps rfcp >> rfio lorsque le nombre de fichiers augmente  Réseau utilisé plus optimal avec plusieurs fichiers copiés en même temps  Max du réseau interne Lapp de 1Gb/s

Closer to reality : fichiers de 1G0  Essais avec N fois X fichiers de 1Go X.N=100  t calcul >t transfert et t calcul  X =>t tot  100’’/1Go si X<40  Limitation vient du calcul Accès depuis un WN de fichiers sur SE WN SE UI

Résumé 18  Temps total pour transfert en // et calcul est équivalent qq soit le nombre de fichiers < 40  Limitation vient du calcul WN SE UI

 Blade de 4 WN sortit spécialement pour ces tests (période calme : Atlas_P)  X jobs mêmes WN (X=1,2,3,4)  Travail en rfcp //  Réseau même dans 4 cas  Les jobs se pénalisent entre eux : la vitesse lecture/écriture des données sur le disque du blade est bloquante.  Max du réseau cluster WN  SE 2*1Gb/s 19 WN SE UI Accès depuis un WN de fichiers sur SE Jobs sur un même WN ( blade 4 cores)

Conclusions  en “normal” : cpu max 500MB : 17 et débit max : 50MB/s  en // : point min avec 60fichiers (200MB) UI : débit max = 70MB/s WN : débit max = 110MB/s  Fichiers 1Go : même effet (2Go en //)  Sur même WN Transferts fichiers : même débit (100MB/s) CPU partagées => compétition entre jobs Limite d’accès aux données copiées sur disque du blade Pas ce genre de problème avec des open rfio 20

Conclusions 21 CPUDataProtocole (MB/s)  UI open13.0 Résultat site dépendant ( LAPP : gpfs + réseau )  UISErfio:/dpm/… 13.0  WNSErfio:/dpm/…15.0 Limitation : activité SE et occupation du réseau WN/SE non prévisibles (fonction du type des jobs qui tournent à un moment donné)  UISErfcp local UI70.0  WNSErfcp local WN110.0 Limitation : vitesse lecture/écriture sur disque WN 1 Fichier de 1G0 100 fichiers de 1G0 en //  Fichiers mergés plutôt que série de petits fichiers  “open rfio” plus performant que rfcp mais dépend de l’activité sur cluster  Capacités maximum du réseau Lapp interne et cluster atteint (1Gb/s)

1/2/3/4 open rfio sur blade  Temps :  import root et dépendances : 11.6’’ et 0.4’’  add chain 0’’  getting entries : 180’’  lecture données : 8320/8420/8830/9000’’ CPU(kb) t(s) Getting entries Working t(s) Getting entries Working Transfert (∆b)