1 / 8

Analysis framework status

Analysis framework status. Gheata , Weekly offline meeting 3.05.07. I ssues. Streaming in PROOF mode Recent fixes and changes Event loop vs. ‘single shot’ tasks Bookkeeping & exception handling. Streaming in PROOF mode. Output data is written in containers

thad
Download Presentation

Analysis framework status

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Analysis framework status Gheata, Weekly offline meeting 3.05.07

  2. Issues • Streaming in PROOF mode • Recent fixes and changes • Event loop vs. ‘single shot’ tasks • Bookkeeping & exception handling

  3. Streaming in PROOF mode • Output data is written in containers • Bad (containers are linked in the analysis tree) • New wrapper introduced to ship data • Transparent to user AliAnalysisSelector PROOF Merge()

  4. Recent changes • AliAnalysisTask::LocalInit() • Introduced to allow local (on client) task initialization in a uniform way • Users should not create objects that will be written to outputs here, but in ConnectInputData() • Not mandatory • Disabling all branches by default • The branches requested by tasks are automatically enabled when using AliAnalysisTask::SetBranchAddress() • Minimizes size of read data

  5. Recent changes (2) • AliAnalysisTask::Notify() • Called when starting the first tree or changing the file in a chain • Used currently by AliAnalysisTaskRL to update validity of run loader • AliAnalysisTask::OpenFile(Int_tiout) • To be called in CreateOutputObjects() before creating the objects to be written to the files specified by the output containers • Not mandatory: to be used only for big trees that cannot fit memory • Fix: CreateOutputObjects() and Terminate() called now also in the non-event loop case

  6. Event loop vs. single shot • Event loop controlled by TSelector • Framework supports non – event loop mode • Combining the two does not work currently • E.g. processing a chain and producing a histogram, than using a task that fits the histogram in the SAME analysis manager session • Analysis split in 2 stages • Processing all tasks in event loop up to Terminate() • Starting stage 2 and executing LOCALLY all non event loop tasks • Implementation ongoing • Tasks/containers aware of their execution mode

  7. Bookkeeping • Initial configuration of tasks, input queries and conditions – not standardized • We may need to know what configuration, what tasks produced a given data • Which were the selection criteria • Which data failed to be processed • Analysis manager may be streamed together with configuration macros in the output tree header • Configuration macros may be encapsulated in tasks

  8. Exception handling • No state manager for the moment • A failing task makes the whole system crash • Typical analysis production run mode will connect several different analysis tasks to the same input data • Maximize profit from having data in memory • A handler for SIGSEGV and other nasty signals can be written • Can we continue after a segmentation violation, or we gracefully die ? • Stack may be corrupted, and other bad things may have happened • Run part of the analysis in a safe thread … ? • Implementing a state manager • Decoupling user code execution

More Related