Implemented new interface to Job Transforms for activating MT and MP jobs
As it was described in the How to run multi-core jobs in production document and in ATLASJT-403, we are introducing two command-line options for the job transform:
--multithreaded--multiprocess
As the names suggest, the former is used for running AthenaMT and the latter for running AthenaMP. The number of threads/processes is taken from a new ATHENA_CORE_NUMBER environment variable.
Now, we have two equivalent ways to run a job in AthenaMT (Reco_tf is used here as an example):
ATHENA_CORE_NUMBER=N Reco_tf.py --multithreaded [Other Options]
Reco_tf.py --athenaopts=--threads=N [Other Options]
Similarly, for running AthenaMP we have two options:
ATHENA_CORE_NUMBER=N Reco_tf.py --multiprocess [Other Options]
Reco_tf.py --athenaopts=--nprocs=N [Other Options]
We will get a configuration error from the transform if one of the following occurs:
-
ATHENA_CORE_NUMBERis set but neither--multiprocessnor--multithreadedoption was provided. -
ATHENA_CORE_NUMBERwas not set but either--multiprocessor--multithreadedwas provided - Both
--multiprocessand--multithreadedoptions were provided to the same job -
--multiprocesswas used in combination with either--athenaopts=--nprocs=Nor--athenaopts=--threads=N -
--multithreadedwas used in combination with--athenaopts=--threads=Nor--athenaopts=--nprocs=N
By implementing these changes we declare the old ATHENA_RPOC_NUMBER environment
obsolete. Athena repository has been cleaned up from the dependency on this
environment. The only exception is Generator code, which is yet to be migrated.
Tag: @emoyse @wlampl @ssnyder @leggett @fwinkl @akraszna @girolamo @elmsheus @tmaeno @pnilsson @walker @mavogel (please feel free to forward this MR to other interested people).