recast-hep / recast-atlas

CLI for ATLAS RECAST contributors
https://recast.docs.cern.ch/
Apache License 2.0
5 stars 5 forks source link

feat: Add LXPLUS8 deploy scripts and requirements.txt #85

Closed matthewfeickert closed 2 years ago

matthewfeickert commented 2 years ago

Resolves #82

* Add a requirements.txt file and .lock file for the version of recast-atlas.
   - New versions should be generated for each deployment and added
     while keeping older ones.
   - The "lockfile" is generated using pip-tools.
* Add a deploy setup script for deployment on LXPLUS8.
* Update the README for a working example.
* Update maintainer notes with deployment instructions and an overview of
how pip-tools should be used.
* Remove the old lxplus_reqs.txt as it is outdated.
matthewfeickert commented 2 years ago

@lukasheinrich If I can (3 years later :slightly_smiling_face: ) ask you for some testing, can you verify that the following works for you as well?

$ ssh lxplus8.cern.ch
$ mkdir -p recast-test && cd recast-test
$ . ~recast/public/setup.sh
$ recast catalogue ls
$ recast run examples/rome
$ tree recast*
For comparison I get: ```console $ ssh lxplus8 * ******************************************************************** * Welcome to lxplus8s14.cern.ch, CentOS Stream release 8 * Archive of news is available in /etc/motd-archive * Reminder: you have agreed to the CERN * computing rules, in particular OC5. CERN implements * the measures necessary to ensure compliance. * https://cern.ch/ComputingRules * Puppet environment: qa, Roger state: production * Foreman hostgroup: lxplus/nodes/login * Availability zone: cern-geneva-b * LXPLUS Public Login Service - http://lxplusdoc.web.cern.ch/ * Please read LXPLUS Privacy Notice in http://cern.ch/go/TpV7 * ******************************************************************** Last login: Thu Dec 16 05:31:04 2021 from 216.169.6.123 [feickert@lxplus8s14 ~]$ mkdir -p recast-test && cd recast-test [feickert@lxplus8s14 recast-test]$ . ~recast/public/setup.sh (recast-atlas-0.1.8) [feickert@lxplus8s14 recast-test]$ recast catalogue ls NAME DESCRIPTION EXAMPLES TAGS atlas/atlas-conf-2018-041 ATLAS MBJ default atlas/monohbb MonoHbb Exotics Analysis default examples/checkmate1 CheckMate Tutorial Example (Herwig + CM1) default examples/checkmate2 CheckMate Tutorial Example (Herwig + CM2) default examples/rome Example from ATLAS Exotics Rome Workshop 2018 default,newsignal testing/busyboxtest Simple, lightweight Functionality Test default (recast-atlas-0.1.8) [feickert@lxplus8s14 recast-test]$ recast run examples/rome 2021-12-16 09:40:06,978 | packtivity.asyncback | INFO | configured pool size to 10 2021-12-16 09:40:07,524 | yadage.creators | INFO | initializing workflow with initdata: {'did': 404958, 'dxaod_file': 'https://recastwww.web.cern.ch/recastwww/data/reana-recast-demo/mc15_13TeV.123456.cap_recast_demo_signal_one.root', 'xsec_in_pb': 0.00122} discover: True relative: True 2021-12-16 09:40:07,525 | adage.pollingexec | INFO | preparing adage coroutine. 2021-12-16 09:40:07,525 | adage | INFO | starting state loop. 2021-12-16 09:40:07,662 | yadage.wflowview | INFO | added 2021-12-16 09:40:09,513 | yadage.wflowview | INFO | added 2021-12-16 09:40:12,072 | yadage.wflowview | INFO | added 2021-12-16 09:40:15,238 | adage.pollingexec | INFO | submitting nodes [] 2021-12-16 09:40:16,258 | pack.init.step | INFO | publishing data: 2021-12-16 09:40:16,260 | adage | INFO | unsubmittable: 0 | submitted: 0 | successful: 0 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:40:19,411 | adage.node | INFO | node ready 2021-12-16 09:40:19,411 | adage.pollingexec | INFO | submitting nodes [] 2021-12-16 09:40:19,418 | pack.eventselection. | INFO | starting file logging for topic: step 2021-12-16 09:40:46,616 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:41:17,453 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:41:47,947 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:42:19,076 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:42:54,133 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:43:28,932 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:44:03,211 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:44:35,144 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:45:05,899 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 1 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:45:36,304 | adage.node | INFO | node ready 2021-12-16 09:45:36,305 | adage.pollingexec | INFO | submitting nodes [] 2021-12-16 09:45:36,305 | adage | INFO | unsubmittable: 0 | submitted: 0 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:45:36,354 | pack.statanalysis.st | INFO | starting file logging for topic: step 2021-12-16 09:46:06,341 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:46:39,492 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:47:09,614 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:47:39,958 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:48:10,774 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:48:41,681 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:49:11,715 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:49:43,180 | adage | INFO | unsubmittable: 0 | submitted: 1 | successful: 2 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:50:09,736 | adage.node | INFO | node ready 2021-12-16 09:50:09,757 | adage.controllerutil | INFO | no nodes can be run anymore and no rules are applicable 2021-12-16 09:50:09,757 | adage.controllerutil | INFO | no nodes can be run anymore and no rules are applicable 2021-12-16 09:50:09,757 | adage | INFO | unsubmittable: 0 | submitted: 0 | successful: 3 | failed: 0 | total: 3 | open rules: 0 | applied rules: 3 2021-12-16 09:50:14,836 | adage | INFO | adage state loop done. 2021-12-16 09:50:14,837 | adage | INFO | execution valid. (in terms of execution order) 2021-12-16 09:50:14,837 | adage | INFO | workflow completed successfully. 2021-12-16 09:50:14,837 | yadage.steering_api | INFO | done. dumping workflow to disk. 2021-12-16 09:50:14,843 | yadage.steering_api | INFO | visualizing workflow. 2021-12-16 09:50:15,753 | recastatlas.subcomma | INFO | RECAST run finished. RECAST result examples/rome recast-c56f2914: -------------- - name: CLs 95% based upper limit on poi value: exp: 0.8924846399964371 exp_m1: 0.6377501820447065 exp_m2: 0.4731739008380644 exp_p1: 1.2720762961732819 exp_p2: 1.7545752712294322 obs: 1.3352971254860764 - name: CLs 95% at nominal poi value: exp: 0.25999040745937085 exp_m1: 0.10547655600578199 exp_m2: 0.03889040527686523 exp_p1: 0.5345040672498215 exp_p2: 0.8276574946063575 obs: 0.574709475331039 (recast-atlas-0.1.8) [feickert@lxplus8s14 recast-test]$ tree recast-*/ recast-c56f2914/ ├── eventselection │   ├── _packtivity │   │   ├── eventselection.run.log │   │   └── eventselection.step.log │   └── submitDir │   ├── driver.root │   ├── hist │   │   └── sample.root │   ├── hist-sample.root │   ├── input │   │   └── sample.root │   ├── location │   └── submitted ├── statanalysis │   ├── fitresults │   │   ├── limit_data.json │   │   ├── limit_data_nomsignal.json │   │   ├── limit.png │   │   ├── post.png │   │   └── pre.png │   └── _packtivity │   ├── statanalysis.run.log │   └── statanalysis.step.log └── _yadage ├── adage │   ├── adagesnap.txt │   └── workflow.gif ├── yadage_snapshot_workflow.json ├── yadage_workflow_instance.dot ├── yadage_workflow_instance.pdf └── yadage_workflow_instance.png 10 directories, 21 files ``` with `recast-*/_yadage/yadage_workflow_instance.png` of ![yadage_workflow_instance](https://user-images.githubusercontent.com/5142394/146339093-5ebac347-6b17-48c6-b8c6-079eb48933d9.png)