{docker, jupiterlab, jana} software environment trial · 2019-09-13 · {docker, jupiterlab, jana}...

11
{Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group Meeting September,13 2019

Upload: others

Post on 05-Mar-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

{Docker, JupiterLab, Jana} software environment trial

with EicRoot as a guinea pig

Alexander Kiselev

NPPS Group Meeting September,13 2019

Page 2: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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?

Page 3: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 4: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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.

Page 5: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 6: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 7: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 8: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

EventProcessor

EventSource

thread

thread

thread

thread

o Eachthreadhasacompletesetoffactoriesmakingitcapableofcompletelyreconstruc<ngasingleevent

o Factoriesonlyworkwithotherfactoriesinthesamethreadelimina<ngtheneedforexpensivemutexlockingwithinthefactories

o AlleventsareseenbyallEventProcessors(mul<pleprocessorscanexistinaprogram)

Jana(2): multi-threading

Page 9: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 10: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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

Page 11: {Docker, JupiterLab, Jana} software environment trial · 2019-09-13 · {Docker, JupiterLab, Jana} software environment trial with EicRoot as a guinea pig Alexander Kiselev NPPS Group

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