100 likes | 124 Views
Proposal for developing an automated certification system for PWG1 training tasks to ensure code stability and efficiency, with detailed guidelines for testing, evaluation, and certification of tasks. The system includes macros and scripts to facilitate task configuration, execution, and analysis, aiming to streamline the certification process. The system also emphasizes user involvement and provides clear decision criteria for task certification.
E N D
Marian Ivanov PWG1 train structure - proposal
PWG1 train • PWG1/QA train tasks to be run (also) together with reconstruction/calibration • PWG1 train consist from many tasks written by many authors • Probability to crash • Logical or (saturation at 100%) • Memory and CPU consumption • Additive • Log and output size ... • Automatic schema to guarantee the stability of the code has to be developed
PWG1 train • Objective criteria to certificate (or do not certificate) tasks • User should be able to run the same certification code as train administrator who made automatic decision • To be ready for tags • Test to be performed independently for groups of tasks • AddPWG1<group>.C • Similar schema already used for other PWGxxx • I tried to make the schema automatic • Ideally part of nightly builds • In case of problems authors automatically notified as in SHUTTLE
PWG1 Train • Macros and scripts to run PWG1 train in $ALICE_ROOT/PWG1/PWG1macros: • runPWG1Train.C - Steering macro • Load configuration for all tasks Add<PWG1>*.C • Macro does not configure tasks 0 default arguments has to • Run train • The same macro used also for tests • Add<PWG1>*.C - Macros to configure user tasks • All macros should have default parameters - otherwise they are ignored • Task can get run number information, trigger information during analysis from ESDs • To add: • Name and e-mail of responsible to be in Add*.C • Syntax e.g : Responsible: marian.ivanov@cer.ch
Naming convention • Strict naming convention to be defined • Suggestion: • AddPWGX<taskGroupName>.C • OutputPWGX<taskGroupName>.root • One output per taskGroup • Not always case • AnalyzePWGX<taskGroupName>.C • Macros to extract typical QA values
Tasks certification • User can commit to $ALICE_ROOT/PWG1/PWG1 macros once fulfill previous criteria. • Not all of the macros will be used for production • Only certified macros will be copied to the production directory (not on SVN) • Test are performed per macro Add*.C with given input esd.list. • The esd.list used should be announced to users before tagging • Decision criteria: • No crash • Reasonable CPU per event • Reasonable increase of VM per event • Reasonable size of log files • Web interface preferred to browse the results of tests • Nightly/weekly builds
Certification Scripts • getCertificate.sh - User script to test task • - Input: • 1. Input name of macro • 2. esd list • - Output: • 1. out.log • 2. summary.log • makeSummary.sh - Make summary information • getCertificateAll.sh - Pseudo code for train administrator • 1. Submit jobs for all user macros Add*.C • 2. Wait • 3. Make summary logs • Part to be implemented • 4. Copy certified Add*.C to certified directory • 5. Write e-mail to responsible in case of problems
Summary logs per group. Examples (Trunk20.03.2010) TPC task to be formally certified Actual certification – analyze function to be implemented Email to be sent
Summary info examples (Trunk20.03.2010) • Summary- Increase of memory consumption per event (Mby) • Ideally 0 • Summary- Increase of memory consumption per event • Summary- Increase of time consumption per event • Common shift due IO • + one outlyer
OCDB access in PWG1 tasks(Trunk20.03.2010) • For PWG1 tasks the OCDB access should be enabled • ConfigOCDB.C(runNumber) to set in steering macro • Magnetic field setting, initialization of the GeoManager, and alignment • Set default storage/Run number • User tasks accessing the OCDB should just make statistic of problem – do not crash