diff --git a/docs/gridproductions/README.md b/docs/gridproductions/README.md index 58cba62..d16d908 100644 --- a/docs/gridproductions/README.md +++ b/docs/gridproductions/README.md @@ -18,24 +18,28 @@ A few ways exist to make use of the GRID computing power for simulation: Official productions for ALICE physics working groups or larger productions for research and development (detector groups, etc.) should be handled via the Data Processing Group (DPG). -A ticket with type "Production Request" should be created in [JIRA](https://alice.its.cern.ch/jira/projects/O2), explaining the purpose, the setup, the software version to be used and so on. The production will then be orchestrated by the DPG production manager. +A ticket with type "Production Request" should be created in [JIRA](https://alice.its.cern.ch/jira/projects/O2), explaining the purpose, the setup, the software version to be used and so on. The production will then be orchestrated by the DPG production manager. Note that a ticket is also needed for test requests, no mail requests will be accepted. -Productions may need to be approved by the Physics Board depending on resource usage. +Productions may need to be approved by the Physics Board depending on resource usage. The CPU limit for tests or productions without Physics board approval is 1d@10kCPUs. ## Personal (development or test) productions Each member of the ALICE collaboration has a personal compute quota and one can submit jobs spanning -O(100) CPUs for development and testing cycles which is a consirable resource pool. +O(100) CPUs for development and testing cycles which is a considerable resource pool. Here, one needs to create a JDL file describing the job, upload executables to the GRID and use a a tool like `alien.py` to interact with the GRID services. Documentation can be found [here](https://jalien.docs.cern.ch/), with the JDL job reference available [here](https://alien.web.cern.ch/content/documentation/howto/user/jobs). - The process of setting up JDLs and copying necessary files can be cumbersome. For this reason, there exists also a [tool](https://github.com/AliceO2Group/O2DPG/blob/master/GRID/utils/grid_submit.sh), called `grid_submit.sh` which allows to submit a locally existing script to run on the GRID without much boilerplate. The tool is work-in-progress and needs more generalizations but may be a good starting point. +### Configuring `grid_submit.sh` + +* To alter the TTL setting of your job, pass `--ttl `. +* If your local user name from where you submit do not coincide, use `--asuser ` to set your GRID user name. +* Production MC simulations are run in `SPLITs`. More explanation on that is provided [here](../o2dpgworkflow/anchored.md). Use `--prodsplit ` to alter the number of splits; default is `1`. {% include list.liquid all=true %} diff --git a/docs/o2dpgworkflow/anchored.md b/docs/o2dpgworkflow/anchored.md index 6f1f957..570cc30 100644 --- a/docs/o2dpgworkflow/anchored.md +++ b/docs/o2dpgworkflow/anchored.md @@ -16,6 +16,12 @@ Please consider installing/loading one of the following `alidist` packages These are meta packages which pull everything that is needed. +The steering script for anchored simulations is called [`anchoredMC.sh`](https://github.com/AliceO2Group/O2DPG/blob/master/MC/run/ANCHOR/anchorMC.sh) in O2DPG. +This script respects various environment variables which are also explained in the test scripts (see links [below](#run-an-anchored-simulation)). +Among those, a very useful and powerful one is `ALIEN_JDL_ANCHOR_SIM_OPTIONS` which can be used to add configurations to the creation of the simulation workflow (for a very concrete example see [below](#run-pythia-with-a-different-collision-system)). + +**NOTE** that the `anchorMC.sh` is not meant to be changed to introduce different configurations or features. If there is something needed that cannot be achieved with what is explained here, please contact the developers and explain your request. + ## Run an anchored simulation In "anchored" MC simulations, conditions are set to match those during a real data taking run at a given time such as LHC filling scheme, included ALICE detectors, interaction rate etc. @@ -32,12 +38,20 @@ There are two examples for anchored simulations: * [PbPb](https://github.com/AliceO2Group/O2DPG/blob/master/MC/run/ANCHOR/tests/test_anchor_2023_apass2_PbPb.sh), * [pp](https://github.com/AliceO2Group/O2DPG/blob/master/MC/run/ANCHOR/tests/test_anchor_2023_apass2_pp.sh). -It is possible to pass additional arguments that will affect the simulation workflow creation via the environment variable `ALIEN_JDL_ANCHOR_SIM_OPTIONS`. -For instance, to run an `external` generator that is configured via an `ini` file, in addition to the other environment variables in the above examples, do also +Not done in the scripts above, but a possible way to utilise the environment variable `ALIEN_JDL_ANCHOR_SIM_OPTIONS` could be to run an `external` generator that is configured via an `ini` file. In addition to the other environment variables, one would achieve this with ```bash export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen external -ini " ``` +## Pre- and post-processing steps, special configurations + +To add any functionality, required pre- or post-processing steps to your simulation, please do not try to add those by editing core O2DPG scripts or files. There are two specific places where one can add additional functionality or configurations. +Inp articular when preparing production requests and running tests, the official productions cannot run with custom O2DPG scripts. + +1. The [`anchorMC.sh`](https://github.com/AliceO2Group/O2DPG/blob/master/MC/run/ANCHOR/anchorMC.sh) steering script should be called inside another shell script where, before or after running `anchorMC.sh`, additional pre- or postprocessing steps can be done. + * For instance it might be necessary to copy certain files before(after) a simulation from(to) another place. +1. Add specific arguments to be forwarded to the simulation workflow creation via the environment variable `ALIEN_JDL_ANCHOR_SIM_OPTIONS` (see also examples in the sections below). + ## Run Pythia with a different collision system If you need to run Pythia8 with a different collision system than the one during data taking, you can make use of the above method as well. @@ -53,7 +67,7 @@ For instance, you could run that first to produce your configuration and pass it ${O2DPG_ROOT}/MC/config/common/pythia8/utils/mkpy8cfg.py --output pythia8.cfg --seed 5 --idA 2212 --idB 2212 --eCM 5020 --process jets # required ALIEN_JDL_* variables -export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen pythia8 -confKey GeneratorPythia8.config=pythia8.cfg" +export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen pythia8 -confKey GeneratorPythia8.config=$(pwd)/pythia8.cfg" # the following are example values export NTIMEFRAMES=2