SlideServe
Menu
Préférences
© SlideServe · v2026

REcent Developments

merrillg avatar
11 diapositives · 154 Views · Jan 01, 2020

Recent developments in GaudiPython bring multiprocessing and synchronization improvements, such as JoinableQueues and Event() class, enhancing parallel processing capabilities. New algorithms and scripts improve support and analysis, with a focus on parallelism for IPC and event streaming. These updates are part of the pytools package version 1.1. Explore the enhanced parallel model and performance boosts for LCG applications.

REcent Developments - slide 1
01 / 11REcent Developments
1 / 17

Télécharger la présentation

REcent Developments
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. REcent Developments • GaudiPython / WP8

  2. GaudiPython parallel

  3. lcg developments • multiprocessing module added to LCG: • Available in LCG Externals • part of pytools package version 1.1 • requirements line : use pytools v1.1 LCG_Interfaces • LCG Config may be off... replace 1.0_python2.5 with 1.1_python2.5 in PYTHONPATH • setenv PYTHONPATH ${PYTHONPATH}:/afs/cern.ch/sw/lcg/external/pytools/1.1_python2.5/x86_64-slc5-gcc43-opt/lib/python2.5/site-packages

  4. developments • Move to multiprocessing complete: • JoinableQueues allow for better synchronisation • both ends guaranteed to stay alive until Queue is empty • Event() class allows for better synchronisation • Impossible to hang on a Queue wait • added Syncer class to ensure no hanging • SMAPS : • Add SmapSnapshot Algorithm to GaudiPython Parallel Model

  5. developments • Scripts for full support and analysis : • Reorder.py -p par -r refOptions • Reorders Parallel output based on the original run options • Allows better comparison to serial output for verification • FileCompare.py -p par -s ser • Compares Output Files by contained ROOT TTrees • lists differences in decreasing size order

  6. developments • Documentation for project • model • results : UnitTest script developed for all applications • TESSerializer details

  7. p0 : 0.0002p1 : 5.775e-6 T Event Size (kB) TESSerializer performancebrunel fest09 1000evStandard lxplus node (8core 2.33GHz x86_64-slc5-gcc43-opt)

  8. parallel workshop • Outcomes : • Modify OutputStream/PersistencySvc in Gaudi specially for Event IPC • IPCSvc.h/cpp added to PersistencySvc • modelled on existing OutputStream • objects collected and dumped to a member TBufferFile • IIPCSvc.h added to GaudiKernel • dumpObject() • loadBuffer() • syntax change : --ncpus=N, --ncpus=-1 • Combine 2 approaches : • Athena MP fork-all-workers / GaudiPython single output stream

  9. parallel SCHEMA

  10. GP parallel : cluster • Cluster-version of GaudiPython • Using pp-1.5.7 and pyssh modules (Not LCG) • possibly update from pyssh to pssh (maintained) • Open SSH session to a (given) list of hosts • Event Parallelism and message passing, instead of single Task with return value

  11. Gp parallel : cluster • Test mechanism implemented : • “GaudiServer” running on remote node • modified ppserver... • added Worker Classes/process, modifed processing of incoming data • environment prepared as part of SSH Session setup • GaudiServer forks one/many Worker Processes, but continues to listen on a single socket • Events can be streamed to socket as TBufferFiles, and then queued to Workers • Concept model... just working in scripts!