Multiple run managers in parallel threads (plus MT) — supported?

Hi all,

I want to run a parameter sweep where several independent Geant4 jobs run in parallel, and each job itself uses multithreaded (MT) mode. Essentially: outer parallelism over configs, inner parallelism via G4MTRunManager.

Key question:
Does Geant4’s global/singleton state (RunManager, UI, geometry, RNG, etc.) support multiple independent kernels in the same process (e.g., several std::threads, each with its own G4(MT)RunManager)? Or is the recommended approach process-level parallelism (MPI, one kernel per rank) with MT inside each rank (hybrid MPI+MT)?

Conceptual workflow:

  • Config file defines an array of parameter sets.
  • Orchestrator distributes parameter sets to workers.
  • Each worker runs a full Geant4 job and writes unique outputs.
  • Aggregated metrics are computed across all workers (in case this part can be done as post processing of saved data at the end of all the runs)

I want to avoid lot of extra work before even knowing if this is possible or not.

In case do you know if there are already applications aiming at the same idea?

Thanks a lot,

Michael