110 likes | 134 Views
REcent Developments. GaudiPython / WP8. GaudiPython parallel. 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
E N D
REcent Developments • GaudiPython / WP8
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
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
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
developments • Documentation for project • model • results : UnitTest script developed for all applications • TESSerializer details
p0 : 0.0002p1 : 5.775e-6 T Event Size (kB) TESSerializer performancebrunel fest09 1000evStandard lxplus node (8core 2.33GHz x86_64-slc5-gcc43-opt)
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
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
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!