pafweb a new way to interact with root and paf
play

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 javier.delgado.fernandez@cern.ch 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 javier.delgado.fernandez@cern.ch 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. javier.delgado.fernandez@cern.ch 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend