Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
{Docker, JupiterLab, Jana} software environment trial
with EicRoot as a guinea pig
Alexander Kiselev
NPPS Group Meeting September,13 2019
Outline n Recap of the 08/23/2019 presentation
n Jana2: first contact n EicRoot as a Jana plugin
n Interactive JupyterLab session
n What comes next?
Generators
Fastsimula/on Fullsimula/on
Reconstruc/on&analysis
g4eJLEIC/eRHICin
Geant4
Geant4FastmodeEicsmear
GeneratorsDatabase Pythia Beagle Herwig …
ejana–EICJANA(2)
BNL&JlabeffortonFastdetectorprototyping
ejana=EICJanaCommunityreferencereconstruc/on
g4e=Geant4EICNa/veC++GEANT4codewithanEICdetectorinit
DatabasewithvariousMCsamples
(1)
(3)
(2)
(1) MCevents(2) Digi/zedhits+magne/cfield+materialdistribu/on(3) Reconstructedevents
“EIC container” functionality overview
SeeD.Romanov:talkattheEICso[waremee/ng07/10/2019-> user access (with graphics) either directly or through SSH or Web interface
JupyterLab Web interface to all this
• Cloud based collaborative workspace
• The medium for studies, reports, analysis
• The bridge between modern Data Science and traditional Nuclear Physics methods
Wiki: Jupyter Notebook is a web-based interactive computational environment
for creating Jupyter notebook documents. The "notebook" term can colloquially make
reference to many different entities, mainly the Jupyter web application,
Jupyter Python web server, or Jupyter document format.
DAQ obj
reconstruc/onalgorithms
objobjobj
objobjobj
JANArawdatafiles
C++objects(lowlevel)
C++objects(refined)
reconstructeddatafiles
Jana(2) software framework
n Providemechanismformanyphysiciststocontributereconstruc/oncodestothe“sharedpool”
n Implementmul/-threadingefficiently&externaltothecontributedcodesn Providecommonmechanismsforaccessingjobconfigura/on,calibra/ons,etc
Jana(2) software framework Built-infeatures Implementa9on
Mul/threading Yes
ROOTinterface No
GEANTinterface No
“Checkpoin/ng” No
I/Oformats Notspecified
Steering ConfigurableJanaexecutable
Usercodes Plugins(sharedlibraries)
Eventprocessingscheme Inparallel,top-downsynchronous
In-memoryeventcomponents Taggedclassinstances(orvectorsofthose)
n Generalimpressions:n modern,(much)higherthanaveragequalityC++coden prejyfunc/onalwithinitsspecs;inac/vedevelopment;hasroomforimprovements
Seee.g.asimpleROOT-for-Janastudy:hjps://gitlab.com/ESC/jreader
STOCK
MANUFACTURE
instock?
YES
NO
FACTORY
STOCK
MANUFACTURE
instock?
YES
NO
FACTORY
Dataondemand=Don’tdoitunlessyouneedit
STOCK
MANUFACTURE
instock?
ORDER
PRODUCT
YES
NO
FACTORY(algorithm)
Stock=Don’tdoittwice Conserva9onofCPUcycles!
Jana(2): factory model
EventProcessor
EventSource
thread
thread
thread
thread
o Eachthreadhasacompletesetoffactoriesmakingitcapableofcompletelyreconstruc<ngasingleevent
o Factoriesonlyworkwithotherfactoriesinthesamethreadelimina<ngtheneedforexpensivemutexlockingwithinthefactories
o AlleventsareseenbyallEventProcessors(mul<pleprocessorscanexistinaprogram)
Jana(2): multi-threading
JANA
EventProcessor
EventSource
HDDMFileEVIOFile
ETsystemWebService
Usersuppliedcode
FillhistogramsWriteDSTL3trigger
Frameworkhasalayerthatdirectsobjectrequeststothe
factorythatcompletesit
Thisallowstheframeworktoeasilyredirectrequeststoalternatealgorithms
specifiedbytheuseratrun<me
Mul<plealgorithms(factories)mayexistinthesameprogramthatproducethesametype
ofdataobjects
Jana(2): event reconstruction scheme
SeeD.Lawrence:talkattheEICso[waremee/ng05/21/2019
EicRoot data processing flow
-> MC points
simulation
n No executable (steering through ROOT macro scripts)
digitization PID; assembly reconstruction -> Hits -> Tracks, clusters -> Events
n ROOT at a core of the framework ... n ... used also for I/O and data exchange (TClonesArray) n Built-in interface to GEANT(s) n Each module is a collection of shared libraries
See AK: talk at the EIC software meeting 07/10/2019
Outline of the integration exercise n Use JLAB Jana+Jupyter Docker container base image n Add other missing stuff like sshd, editors, etc
n Rework EicRoot installation scripts (no fairsoft bundle, etc) n Intergate Jana into CMakeLists.txt where appropriate n Eventually build EicRoot as a Jana plug-in
n Play around with the JupyterLab interface
-> interactive presentation follows