code: def hydra_main(overrides: List[Any]):
      ######################################################################################
      # DO NOT MOVE THIS IMPORT TO TOP LEVEL: submitit processes will not be initialized
      # correctly (MKL_THREADING_LAYER will be set to INTEL instead of GNU)
      ######################################################################################
      from vissl.hooks import default_hook_generator
  
      ######################################################################################
  
      print(f"####### overrides: {overrides}")
      cfg = compose_hydra_configuration(overrides)
      args, config = convert_to_attrdict(cfg)
  
      if config.SLURM.USE_SLURM:
          assert (
              is_submitit_available()
          ), "Please 'pip install submitit' to schedule jobs on SLURM"
          launch_distributed_on_slurm(
              engine_name=args.engine_name, cfg=config
          )
      else:
          launch_distributed(
              cfg=config,
              node_id=args.node_id,
              engine_name=args.engine_name,
              hook_generator=default_hook_generator,
          )
  
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 1 for calling a global function with example usage: hydra_main(overrides) without return types