code: def hydra_multirun_main(overrides: List[Any]):
      """
      Utility function which allows to run multiple jobs with different
      hyper-parameters, using the syntax of Hydra sweep overrides:
  
      ```
      python tools/run_distributed_engines.py
          config=path/to/configuration
          config.OPTIMIZER.weight_decay=0.001,0.0001
          config.OPTIMIZER.num_epochs=50,100,200
      ```
  
      This command will run 6 jobs, with all the cross combinations of
      weight_decay and num_epochs, setting the checkpoint directory
      and the running directory to sub-folders of the current directory
      """
      overrides, sweeps = SweepHydraOverrides.from_overrides(overrides)
      if not sweeps:
          hydra_main(overrides)
      else:
          multirun_dir = os.getcwd()
          for sweep_id, sweep_overrides in enumerate(sweeps):
              run_dir = os.path.join(multirun_dir, f"sweep_{sweep_id}")
              makedir(run_dir)
              os.chdir(run_dir)
              checkpoint_path_overrides = [
                  f"config.CHECKPOINT.DIR={run_dir}"
              ]
              hydra_main(
                  overrides
                  + sweep_overrides
                  + checkpoint_path_overrides
              )
  
file_path: vissl/tools/run_distributed_engines.py
imports: import os
  import sys
  from typing import Any, List
  from vissl.utils.distributed_launcher import launch_distributed, launch_distributed_on_slurm
  from vissl.utils.hydra_config import compose_hydra_configuration, convert_to_attrdict, SweepHydraOverrides
  from vissl.utils.io import makedir
  from vissl.utils.slurm import is_submitit_available
label_desc: Use image node_id 2 for calling a global function with example usage: hydra_multirun_main(overrides) without return types