Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Anchor,GRID] More details #44

Merged
merged 1 commit into from
Mar 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions docs/gridproductions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <ttl>`.
* If your local user name from where you submit do not coincide, use `--asuser <alien-user>` 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 <prodsplit>` to alter the number of splits; default is `1`.

{% include list.liquid all=true %}
20 changes: 17 additions & 3 deletions docs/o2dpgworkflow/anchored.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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 <path/to/config.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.
Expand All @@ -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
Expand Down
Loading