14
Version 5

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

Embed Size (px)

Citation preview

Page 1: 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

Version 5

Page 2: 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

¿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.

Page 3: 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

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.

Page 4: 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

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.

Page 5: 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

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:

Page 6: 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

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.

Page 7: 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

New functionality and improvements (cont.)

For example, we could create several selectors (or reuse from previous analysis):

Page 8: 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

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.

Page 9: 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

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)

Page 10: 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

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.

Page 11: 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

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).

Page 12: 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

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.

Page 13: 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

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

Page 14: 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

Thank you.