Upload
morgan-young
View
218
Download
2
Embed Size (px)
Citation preview
Version 5
¿What is PAF?
PAF is a tool to easily and quickly implement……distributed analysis over ROOT trees.…by hiding as much as possible the inherent
complexities of parallel paradigms to the users.…and by providing a common framework for some
of the different technologies available.
We have preserved as much as possible the compatibility with previous releases.
PAF Core changesModular architecture allowing an easy
adaptation to new scenarios.
There are enough interfaces to change almost all of its behaviours.
PAF has now a strong object orientation:Makes an easy understanding of the system,
particularly to coming developers.Facilitates its modifications.
Workflow
Very similar to previous versions.
A few small changes: Selector development now inherits from
PAFChainItemSelector. We have also developed a new way to access branches:
With templates (Recommended): Get<T>(“Branch”)
And predefined: GetInt, GetFloat and GetDouble.
The new RunProof.C
Execution configuration has suffered a deep change.
Now it is created as a PAFProject but only 4 lines to default process:
New functionality and improvements
Modular development of analysis:PAF now allows us to chain selectors.
Communication between selectors is easy: SetParam(“Name”, value); and GetParam<T>(“Name”);
Each selector could be independent from the others:Reusability of selectors from different analysis.If each selector has only only one responsibility:
Easy to develop and extend. Easy understanding of the analysis chain.
New functionality and improvements (cont.)
For example, we could create several selectors (or reuse from previous analysis):
New functionality and improvements (cont.)
Project paradigm to configure an execution: Configuration is now easier and more human.
A PAFProject has a lot of parameters, but most of them have default values.
Project configuration
does not interfere
with the selectors
developed.
You canlaunch your
analysis in a bunch of
different scenarios.
New functionality and improvements (III)
Lazy loading of branches Completely transparent to users. Significantly improves your analysis performance. Also reduces disk and bandwidth usage. Activated by default.
0 5 10 15 20 25 30 350
200
400
600
800
1000
PROOF LitePROOF Lite with Lazy Loading
Number of nodes
Pro
cess
ing
tim
e (
s)
Migration from previous PAF
Easy and fast process: Selectors should be adapted to:
Inherit from PAFChainItemSelector instead of PAFBaseSelector.The way to get a variable now is “Get<T>(“VariableName”)”,
there is also an array access “Get<T>(“VariableName”, position);” PAF Selector functions tutorial
Creation of PAFProject object:Easy process, we promise less than 2 minutes.
Running a project tutorial
Nothing else
… and we will provide support if you spot something not covered here
We will not support previous versions of PAF.
PAF Inspect TreeA new tool to know more about ROOT analysis files.
For full documentation:$ paf inspectree -h
Support for multi-tree files.
Filters available for variables:Support for regular expressions.
Shows code snippet (under development).
ConclusionsPAF is an easy-to-use distributed analysis tool
that helps you in the last phases of the analysis allowing you to focus your attention only on your research.
There are many tutorials explaining almost every functionality of PAF.
It is under heavy development and we need a lot of feedback We want to develop a very comfortable tool. Anything you miss, please, let us know, everything is
welcome.
ReferencesPAF homepage:
http://www.hep.uniovi.es/PAF/
Source code (GitHub): https://github.com/PROOF-Analysis-Framework/PROOF-Analysis-Framework
Tutorials:http://www.hep.uniovi.es/PAF/index.php/tutorials
Thank you.