Presentation is loading. Please wait.

Presentation is loading. Please wait.

Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern.

Similar presentations


Presentation on theme: "Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern."— Presentation transcript:

1 Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern

2 Beat Jost, Cern General Idea 2 4th LHCb Computing Workshop, 6 November 2014 ❏ Use the HLT farm nodes to process (selected) event data (Analysers): ~1500 copies ❏ The results of the event analysis are collected by an Iterator (only one) that will provide the next set of parameters the analysers will use to redo the event processing ❏ Once the iteration process has converged (or failed) the Alignment process is finished and the final parameter set is stored for future use ❏ The entire process is driven and steered by the run controller via the FSM machinery

3 Beat Jost, Cern Pictorially 3 4th LHCb Computing Workshop, 6 November 2014 Iterator (Central Node) Analyzer (Farm Node) Analyzer (Farm Node) Alignment Constants Analysis Results … Alignment Constants ~1500 Copies Event Data

4 Beat Jost, Cern Task Finite State Machine ❏ Standard Online Task FSM ❏ Each task in the system runs this FSM ❏ The sequencing of the different tasks is performed by the run controller and its internal rules 4 4th LHCb Computing Workshop, 6 November 2014 Offline Ready RunningPaused configure (initialize) start pause continue stop reset(finalize)

5 Beat Jost, Cern Global FSM and sequencing 5 4th LHCb Computing Workshop, 6 November 2014 ❏ The Analyzers issue the pause transition when they have finished the processing of the events (EoF). ❏ The run controller only send the stop command to the Analysers when ALL are paused. During this transition the Analysers ‘publish’ the results of the analysis. ❏ When all Analysers are in the ready state the run controller sends the pause command to the Iterator, which collects the results of the Analysers and calculated the next set of parameters and issues the continue command to the run controller. ❏ The run controller will issue the start command to the Analysers, which will read the new parameters and analyse the data again ❏ And so on… Slave initiated

6 Beat Jost, Cern Framework Components ❏ The Tasks (Iterator and Analyser) are each composed of two components ➢ A framework service that ensures proper interaction with the run controller ➢ A user component (AlgTool) that implements the real work of the alignment process ❏ Iterator: ➢ Framework Code: AlignDrv, implementing IAlignDrv + OnlineService ➢ User Code: implementing IAlignIterator interaface (basically one routine) and calling the methods of IAlignDrv + doing the real work ❏ Analyser: ➢ If a “standard” event processing (e.g. Brunel-like) application is run, there is no additional coding need, besides the reading of the parameter set in the start transition. The pause transition is called by the online file selector automatically at EoF. 6 4th LHCb Computing Workshop, 6 November 2014

7 Beat Jost, Cern Current Status ❏ Tracking Alignment (Velo, ST, OT) has been implemented and seems to work (Wouter, me) ➢ Currently suffering from version hell, but just need to build a consistent version of the Alignment Project ➢ HLT1 special selection line is implemented. ➢ Information interchange between farm nodes and Iterator via NFS files ➥ Need to check scalability ❏ Rich Mirror Alignment under construction (Paras, me) ➢ Managed to run the Panoptes flavour of Brunel on the farm nodes on a 2012 output file ➢ HLT1 special selection line under construction ➢ Work on the iterator skeleton started ➢ Information exchange ➥ Analysis results via standard histogram adding ➥ Parameter sets via NFS files ❏ Bandwidth Division under construction (Eric et al.) 7 4th LHCb Computing Workshop, 6 November 2014

8 Backup Slides

9 Beat Jost, Cern Iterator Classes namespace LHCb { class AlignDrv: public extends2 { public: AlignDrv(const std::string& name, ISvcLocator* sl); virtual ~AlignDrv(); virtual StatusCode start(); virtual StatusCode initialize(); virtual StatusCode finalize(); virtual StatusCode run(); virtual StatusCode stop(); virtual StatusCode pause(); virtual void setRunOnce(); virtual void waitRunOnce(); virtual void handle(const Incident& inc); std::string m_PartitionName; std::string m_RefFileName; std::string m_FitterClass; std::string m_FitterName; bool m_runonce; IGauchoMonitorSvc *m_MonSvc; IAlignIterator *m_fitter; void writeReference(); void doContinue(); void doStop(); IIncidentSvc *incidentSvc () {return OnlineService::incidentSvc();}; IToolSvc *m_ToolSvc; IGauchoMonitorSvc *getMonSvc(); }; } 9 4th LHCb Computing Workshop, 6 November 2014 class GAUDI_API IAlignDrv: virtual public IInterface { public: DeclareInterfaceID(IAlignDrv,1,0); virtual void writeReference()=0; virtual void waitRunOnce()=0; virtual void doContinue()=0; virtual void doStop()=0; }; class IAlignIterator : virtual public IAlgTool { public: DeclareInterfaceID(LHCb::IAlignIterator,1,0); virtual StatusCode i_start()=0; }; System Interface called by user code User Interface called by AlignDrv The heart of the iteration code is executed in a separate thread so that commands from the run controller can still be received.


Download ppt "Framework for Online Alignment 4th LHCb Computing Workshop 6 November 2014 Beat Jost / Cern."

Similar presentations


Ads by Google