170 likes | 315 Views
Open Scientist. -What we have learned - Status - Plans. Philosophy. HEP needs to follow (computing) technology. Situation is very accurate in data analysis where a huge turnover exists for : languages, data storage, interactivity, visualization.
E N D
Open Scientist -What we have learned - Status - Plans G.Barrand, LAL-Orsay
Philosophy • HEP needs to follow (computing) technology. • Situation is very accurate in data analysis where a huge turnover exists for : languages, data storage, interactivity, visualization. • Open Scientist : find an architecture, code organization to face the fast turnover of technologies in data analysis. G.Barrand, LAL-Orsay
How ? • For each “domain”, try to handle multiple solutions : multiple storage systems, multiple command systems, multiple GUI toolkits, ... • Some organization rules , “meta rules” emerged. G.Barrand, LAL-Orsay
@ work THisto::TObject Rio .root file Histo Obj .DB file d_Histo::ooObj Histo Inventor _|_ IvHisto G.Barrand, LAL-Orsay
The scientist/adapter/facility model Storage1Histo Storage1 .s1 file Storage2 .s2 file Storage2Histo Histo Cmd Cmd> histo CmdHisto Track Net PacketHisto NetHisto Detector VisHisto Vis picture GUIHisto GUI >Histo< MVC G.Barrand, LAL-Orsay
Hierarchical organization Hub B Hub E Pack C Pack A Pack F Pack D • Package : “bag of code” with a standalone life (web pages, own developers, etc...). • The SAF model helps to find packages • OO helps through the concepts of namespace, class, virtuality, pattern to package things. G.Barrand, LAL-Orsay
“hub(s)” • A special “hub” package is needed to “glue” things together. • The hub takes in charge the connection of things handled by the various packages. • The hub is presented to a user. • Distribute a coherent set = {hub, packages}. G.Barrand, LAL-Orsay
Anatomy of a “hub” • A hub must not contain everything. • “Class dressing” : tcl> Histogram h ... tcl> h visualize S::Histogram, Detector kuip> H/new h ... kuip> H/visualize h Hub::Histogram : ?, S::Histogram { void store(); void visualize(); } cint> H h; cint> h.vis() G.Barrand, LAL-Orsay
Automatic prod of adapters SWIG Tcl> histo Tcl_Histo Tcl Histo makecint G__... cint> h.vis() CINT Do the same for storage ? Visualization ? GUI ? G.Barrand, LAL-Orsay
Open Scientist (v5) coherent set Xm Wo Obj Tk Lab Riot Tcl Rio KUIP HEPVis HCL Lib SoFree Midnight OpenGL NT, UNIXes G.Barrand, LAL-Orsay
The “Labs” « MyLab » = my OSC Application Lab My libs « MyLab » dynamicly loaded at run time. G.Barrand, LAL-Orsay
Virgo : Dante = VirgoLab Dante Lab FrameLib, ... - Hook local storage. - Function manipulations (fft, filtering,…) G.Barrand, LAL-Orsay
LHCb : GaudiLab GaudiLab Gaudi Lab G.Barrand, LAL-Orsay
Geant4 : G4Lab G4Lab Lab Geant4 kernel Help to revisit the G4 interactive environment (intercom, interfaces, visualization) : reusability, link to the kernel,... G.Barrand, LAL-Orsay
Joblist • Improve everything. • IHistogram.h, IViewer,... : check HTL interoperability. • Declare CINT in the system (mainly done). • Rio : repack without touching original code (?) • HEPVis : improve SoPlotter (fonts), solid boolean operations. • Discuss with jmen around to have a SAF structure in java : jhisto package, jhub, ... • ... G.Barrand, LAL-Orsay
Conclusions • The work already done has permitted to extract some general rules to organize things in a more modular and open way : SAF model, package decomposition, hub, coherent set, class dressing,... • The SAF model is a good road map for open source and distributed developments (DevNet). • A C++ workable “coherent set” of 11 packages exist. • Http://www.lal.in2p3.fr/OpenScientist. • Installed under : /afs/cern.ch/atlas/maxidisk/d68 (NT and UNIXes) G.Barrand, LAL-Orsay
Meta-conclusions • Open Source, distributed developments : “competition kills collaboration” • We are loosing (we have lost !) the capacity to innovate ! • We need a revolution ! • Year 2000 is a great date for that ! G.Barrand, LAL-Orsay