Project

General

Profile

Legacy Validation » History » Version 8

Version 7 (Tomasz Golan, 06/02/2016 11:28 AM) → Version 8/9 (Tomasz Golan, 06/02/2016 11:33 AM)

h1. Legacy Validation

Legacy validation (src/scripts/production/batch) was translated to python and jobsub. At this moment, the code lives here: https://github.com/TomaszGolan/legacyValidation or here: /grid/fermiapp/genie/legacyValidation/

General comments on running GENIE on OSG can be found here: https://cdcvs.fnal.gov/redmine/projects/genie/wiki/Running_GENIE_on_grid

General instruction to legacy validation can be found on github.

h2. Step by step

h3. Builds

* go to https://buildmaster.fnal.gov/view/GENIE/job/jenkinsTest/
* choose Build with Parameters
* choose the branch, e.g. @branches/R-2_10_6@ or @trunk@
* every time build is called, svn repository is checked out, chosen branch is compiled and artifact is created
* artifact name convention: @genie_[branch]_buildmaster_YYYY-MM-DD.tgz@
* note, that name convention and link to jenkins is hard-coded in @legacyValidation/jenkins.py@

h3. Run legacy validation:

* go to @/grid/fermiapp/genie/legacyValidation/@
* run @runLegacyValidation.py@, e.g.

<pre>
./runLegacyValidation.py --genie_tag trunk --run_path /grid/fermiapp/genie/legacyValidation/runGENIE.sh --builds /grid/fermiapp/genie/builds/ --output /pnfs/genie/scratch/users/goran/legacyValidation
</pre>

* first the script will grab the last artifact for @--genie_tag@ (note, you can specified build date by hand using @--build_date@ flag)
* it will be saved / extracted in @--builds@ folder (note, this step is skipped if the build already exists in the folder)
* @--run_path@ is required; it gives the path to @runGENIE.sh@ script which is used to run every GENIE job at grid (it handles copying input files, running GENIE command and copying output to pnfs)
* the results will be saved in @--output@ folder under @[branch]/[build date]@ with the following structure

<pre>
├── events # ROOT files with event trees
│   ├── hadronization # used for hadronitzation test
│   ├── mctest # used for "sanity" test
│   ├── repeatability # used for repeatability test
│   └── xsec_validation # used for xsec validation
├── legacyValidation-[branch]-[build date].dag # this is a jobsub dag file which will be submitted
├── reports # final results
│   ├── hadronization_test
│   │   └── file_list-[branch]-[build date].xml # this is filelist xml file genrated automatically to be used for hadronization test jobs
│   ├── repeatability_test
│   ├── sanity_mctest
│   └── xsec_validation
│   ├── file_list-[branch]-[build date].xml # this is filelist xml file genrated automatically to be used for xsec test jobs
│   └── single_comparisons_with_errors # script generated one set with all plots; in this folder there are plot per test but with MC errors included
└── xsec # xsec splines
├── nuA # for nuclei
└── nuN # for nucleons
</pre>



h3. Run branches comparison

* go to @/grid/fermiapp/genie/legacyValidation/@
* run @compare.py@, e.g.

<pre>
./compare.py --builds /grid/fermiapp/genie/builds/ --genie_tags 'R-2_10_6 R-2_10_8' --genie_dates '2016-04-04 2016-05-12' --top_dir /pnfs/genie/persistent/users/goran/legacyValidation/ --comp_path /grid/fermiapp/genie/legacyValidation/runCompare.sh
</pre>

* it needs path to @$GENIE/bin@, it will use @--builds/[first provided tag]@
* it will look for the results in @--top_dir@ assuming the folder structure explained above, in this case:

<pre>
/pnfs/genie/persistent/users/goran/legacyValidation/R-2_10_6/2016-04-04
/pnfs/genie/persistent/users/goran/legacyValidation/R-2_10_8/2016-05-12
</pre>

* @--comp_path@ flag is required; it gives the path to runCompare.sh script which is used to run GENIE validation apps (not at grid)