About v2

8231885873e2149e491d180073311049?s=47 Sasha Mazurov
May 20, 2016

About v2


Sasha Mazurov

May 20, 2016


  1. Alexander (Sasha) MAZUROV www.linkedin.com/in/mazurov github.com/mazurov alexander.mazurov@gmail.com https://speakerdeck.com/mazurov alexander.mazurov@gmail.com 20/05/2016 1

  2. Education M.Sc in Mathematics & Computer Science Lomonosov'sMoscow State University

    (Russia), 1997-2002 Ph.D in Physics University of Ferrara (Italy), 2011-2014 (March) alexander.mazurov@gmail.com 20/05/2016 2
  3. 2005 – 2014: LHCb experiment alexander.mazurov@gmail.com 20/05/2016 3

  4. 2005-2007: Summer student, INTAS-CERN fellowship l “Gaudi” (core event processing

    framework at LHCb and ATLAS experiments) Parsers (based on Boost.Spirit v1.x library) l Used for configure complex C++ objects from python 2007-2010: Project Associator at the Online group l LHCb User management interface. User migration to Active Directory l Setup and configuration of Helpdesk System, TWiki, web services. l Run database web interface l http://lbrundb.cern.ch l CastorFS (FUSE file system). Poster at CHEP 2009, Prague l Poster l Source code: https://github.com/mazurov/castorfs) 2011-2014: Doctoral student l Gaudi Parsers v2.0 (based on Boost.Spirit v2.x library) l Gaudi Profiler Auditor. Talk at CHEP 2012, New-York l Thesis: Profiler & study of χ b production. alexander.mazurov@gmail.com 20/05/2016 4
  5. Trigger CPU profiling l Most experiments require a trigger in

    order to record interesting events at a suitable rate. l l L0 Hardware Trigger 40 MHz -> 1 MHz. Search for high pt, mu, e, gamma, hadron candidates. l High Level Software Trigger Farm l HLT1: Add Impact parameter cuts l HLT2: Global event reconstruction l 100 man/years work that has only 20-30 ms to process an average event. l 29K CPUs or 1700 servers The trigger needs fast algorithms! alexander.mazurov@gmail.com 20/05/2016 5
  6. CPU profiler tool is vital for trigger optimization l Gaudi

    Intel Profiler Auditor (C++ library) l Deployed into the core software framework —Gaudi. l Based on Intel VTuneAmplifier XE User API. Reports grouping: l Static code properties: name of method or class l Dynamic code properties: property values (value of algorithm's “Name” property) alexander.mazurov@gmail.com 20/05/2016 6
  7. CPU consumption by source code lines alexander.mazurov@gmail.com 20/05/2016 7

  8. Example of HLT hotspot l Hotspot was detected l Total

    CPU consumption decreased by 5% alexander.mazurov@gmail.com 20/05/2016 8
  9. CHEP2012: Talk and Paper A. Mazurov and B. Couturier, “Advanced

    modular software performance monitoring”, Journal of Physics: Conference Series 396 (2012), no. 5 052054. Source code: https://github.com/mazurov/IntelProfiler alexander.mazurov@gmail.com 20/05/2016 9
  10. bb system, which can be produced in different spin configurations,

    is ideal laboratory for QCD tests. It's like a hydrogen atom in QCD. χb production study Mass (Gev/c 2 ) States with parallel quark spins (S=1): • S-wave ϒ state • P-wave χ b states, composed by 3 spin states χ b0,1,2 . Can be readily produced in the radiactive decays of ϒ l χ b (3P) state recently observed by ATLAS, D0 and LHCb. Results: l Measurement for ϒ(NS) (N=1, 2, 3) cross sections in χb decays as a function of pT(ϒ) l Measurement of χb (3P) mass. http://amazurov.web.cern.ch/amazurov/mazurov-thesis-2.11.pdf https://github.com/mazurov/thesis-code alexander.mazurov@gmail.com 20/05/2016 10
  11. χb production study: Results at the LHCb public homepage http://lhcb-public.web.cern.ch/lhcb-public

    alexander.mazurov@gmail.com 20/05/2016 11
  12. Gaudi String Parsers l Flexible with respect to a addition

    of new types l Readable and robust source code l Based on Boost.Spirit v2, that is modern version with guaranteed long-term support alexander.mazurov@gmail.com 20/05/2016 12
  13. Standalone version: https://github.com/mazurov/parsim alexander.mazurov@gmail.com 20/05/2016 13

  14. 2014 – now: LHCb and ATLAS experiments Software Engineer at

    the University of Birmingham (UK) ATLAS: • Responsible for the offline software in Level 1 Calorimeter (ATLAS sub-detector) • Contributions: https://svnweb.cern.ch/trac/atlasoff/search?q=amazurov • C++ and python LHCb: • Rewrite regression testing framework (LHCbPR2) • Python (Django, django-restframework) • MySQL database • Docker containers for testing and deployment • Single-page JavaScript application (AngularJS) alexander.mazurov@gmail.com 20/05/2016 14
  15. LHCbPR2: regression testing framework alexander.mazurov@gmail.com 20/05/2016 15

  16. LHCbPR2: web services alexander.mazurov@gmail.com 20/05/2016 16

  17. LHCbPR2: Web Services • Web Frontend • https://github.com/LHCbDev/lhcbpr2fe • https://hub.docker.com/r/mazurov/lhcbpr2fe

    • API service: • https://github.com/LHCbDev/lhcbpr2be • https://hub.docker.com/r/mazurov/lhcbpr2be • ROOT service: • https://github.com/LHCbDev/lhcbpr2root • https://hub.docker.com/r/mazurov/lhcbpr2root • Apache proxy server and security control: • https://github.com/LHCbDev/lhcbpr2all • https://hub.docker.com/r/mazurov/lhcbpr2all alexander.mazurov@gmail.com 20/05/2016 17
  18. REST API Possible service endpoints alexander.mazurov@gmail.com 20/05/2016 18

  19. REST API features • We can use it for all

    CRUD operations (create, read, update, delete) • Can output arbitrary JSON (examples later) • Authentication plugins: e.g. shibboleth for web and tokens for console applications • Output pagination, throttling and requests’ cache allow to avoid service overloading. alexander.mazurov@gmail.com 20/05/2016 19
  20. Examples • Jobs list - /jobs • Job details -

    /jobs/1 • We can expand any object’s relationships. • Nested requests- /jobs/1/results/ • Output job attributes’ values • Output filtering -/compare/?ids=1,2&contains=Event • Show and group attributes of jobs with id 32 and 32. Attribute name should contain “Event” string alexander.mazurov@gmail.com 20/05/2016 20
  21. Web Frontend Only http requests from browser to REST server,

    no backend behind alexander.mazurov@gmail.com 20/05/2016 21
  22. Reusable Web Components = <div search-jobs="search-jobs" on-found="onJobsFound(searchParams)”> </div> onJobsFound –client’s

    custom callback function that get search form results: ids of application, options, Versions New one <jsroot> -Draw JSROOT plots (next slides) More components in development alexander.mazurov@gmail.com 20/05/2016 22
  23. JSROOT service • Root service. Returns objects from ROOT files

    in JSON format: • /root/?files=FTFP_BERT_kaon%2B_Be.root,FTFP_BERT_proton_Si.root&items=Tot al,Inelastic,Elastic alexander.mazurov@gmail.com 20/05/2016 23
  24. JSROOT plots alexander.mazurov@gmail.com 20/05/2016 24

  25. alexander.mazurov@gmail.com 20/05/2016 25

  26. alexander.mazurov@gmail.com 20/05/2016 26 http://chep2016.org/

  27. Thank you! alexander.mazurov@gmail.com 20/05/2016 27