pafweb a new way to interact with root and paf

PAFWeb: A new way to interact with ROOT (and PAF) Javier Delgado - PowerPoint PPT Presentation

PAFWeb: A new way to interact with ROOT (and PAF) Javier Delgado Fernandez CERN 1 / 20 PAFWeb and PAF PAFWeb PAF It is a web application It is a C++ framework Provides all the tools

  1. PAFWeb: A new way to interact with ROOT (and PAF) Javier Delgado Fernandez CERN 1 / 20

  2. PAFWeb and PAF PAFWeb PAF ◮ It is a web application ◮ It is a C++ framework ◮ Provides all the tools ◮ Interaction through C++ needed for data analysis code ◮ Graphical interactive ◮ It only depends on the interface for all common ROOT Framework actions ◮ It provides a framework to ◮ Based on PAF analyze data ◮ It is a personal project ◮ Developed in collaboration developed in my free time with the U. Oviedo and IFCA 2 / 20

  3. PAF and ROOT (I) PAF ROOT ◮ Defined workflow. The ◮ Freedom. It allows you to user only needs to follow create your own analysis the steps structure ◮ Lazy loading of branches in ◮ Steep learning curve an easy way to use it ◮ User needs to know and ◮ Different execution develop some technical environments (PROOF aspects that are not related Lite, PoD, PROOF Cloud, directly with the analysis sequential, ...) abstracted process and implemented ◮ Modular analysis supported ◮ Message and information passing mechanism implemented 3 / 20

  4. PAF and ROOT (and II) - Common parts 4 / 20

  5. Lets talk about PAFWeb 5 / 20

  6. PAFWeb briefly (I) ◮ Integrated development environment (Based on web application) for ROOT data analysis (based on PAF) ◮ Code editor with syntax highlighting and real autocompletion ◮ Project configuration through a graphical user interface ◮ Execution of the project (compiles and runs the code) with real time feedback ◮ Results (histograms) automatically displayed in the web browser (thanks to ROOTJS) 6 / 20

  7. PAFWeb briefly (and II) ◮ Debuger to inspect the code ◮ Integrated profiler to analyse code performance ◮ Version control system: Important also to maintain integrity for long projects ◮ And everything through a web user interface. Backend running somewhere else, not in your laptop or desktop 7 / 20

  8. PAFWeb current technology ◮ Flask (Python) as web framework with SQLAlchemy ◮ WebSockets based on Socket.IO library ◮ ReactJS and jQuery to make the view interactive ◮ Codemirror provides the built-in code editor ◮ D3 to generate some charts ◮ Showing the histograms with ROOTJS ◮ PostgreSQL as database ◮ GDB, Valgrind Callgrind, Docker, PAF and ROOT to execute the code 8 / 20

  9. Current system overview 9 / 20

  10. Inside execution 10 / 20

  11. Execution ◮ Technology: ROOT, PAF and Docker (And GCC as compiler) ◮ The code runs inside an isolated container (Docker) ◮ You can visualize the current status or the logs of the execution in real time ◮ Once the execution has ended, the results (diagrams) are showed thanks to ROOTJS. ◮ A ROOT output file with the results is available for downloading 11 / 20

  12. Debugging ◮ Technology: GDB ◮ Allows to inspect only your code, skipping internal objects (std, ROOT, PAF) ◮ Real time interaction with evaluation of custom expressions ◮ You can close your browser and continue in any other moment even using other devices with the same debugging session exactly where you left it 12 / 20

  13. Autocomplete ◮ Technology: libClang ◮ Autocompletion showed in the built-in editor ◮ Uses the real environment where your code is going to run. This means that you have autocompletion with PAF, ROOT, std or the libraries that you are using. 13 / 20

  14. Profiler ◮ Technology: Valgrind Callgrind ◮ Profiles the CPU time to execute each part of your code ◮ Draws a zoomable D3 chart ◮ Filters a lot of data to show only useful information 14 / 20

  15. Where is it going? (I) ◮ Scalable application. ◮ No internet connection required. Just 2 GB of disk space for a VM running standalone. ◮ More interactivity providing the best user experience possible. ◮ C++ for the backend and AngularJS for the frontend. Permanent WebSocket connection communicating them. ◮ Documental database (MongoDB, ElasticSearch) instead of a classical relation schema: they are faster for this application since the data is always denormalized with the same format. 15 / 20

  16. Where is it going? (and II) ◮ Integration with clasiccal tools: VIM, Emacs, SSHFS? ◮ The physicists don’t need to know about software engineering. Tools are intended to solve problems, not to create them. ◮ Export: Work may be continued in an old-fashion terminal way. ◮ Version control integrated with Git ◮ In my opinion, PAFWeb can become a great IDE to complement ROOT. 16 / 20

  17. One more thing... 17 / 20

  18. LaTeX ◮ Integration with LaTeX. Specifying the execution ID you can manipulate the objects inside the result ROOT file and draw them directly in your papers. ◮ You can use the full power of ROOT since it is based in PyROOT. C++ version also planned. ◮ Always working through a powerful but easy to use web application. \ begin { pafweb } [EXECUTION ID ] histogram = Get ( ‘MT‘ ) histogram . S e t F i l l C o l o r ( 42 ) Draw( histogram ) \ end { pafweb } 18 / 20

  19. Conclusions ◮ PAFWeb provides a complete and intuitive ROOT data analysis framework: ◮ Develop your code in the built-in editor ◮ Specify the analysis code and the data sample (set of ROOT files) ◮ While you are waiting to see the results, see the progression and the logs in real time ◮ Review your results ◮ Debug your code or profile it. The tools are ready, easy to use and attractive. ◮ See the history of your code, your project or the samples keeping always the integrity. ◮ But the application is being completely migrated to provide a better solution. 19 / 20

  20. Thanks Thanks you for your time and your attention. Special thanks to Isidro Gonzalez Caballero (CMS-University of Oviedo) because of his motivation, help and support with theese projects. And thanks also to the HEP department of University of Oviedo for the resources provided. 20 / 20


More recommend