code: def run_engine(
      engine_name: str,
      cfg: AttrDict,
      dist_run_id: str,
      checkpoint_path: str,
      checkpoint_folder: str,
      local_rank: int = 0,
      node_id: int = 0,
      hook_generator: Callable[
          [Any], List[ClassyHook]
      ] = default_hook_generator,
  ):
      engine = get_engine(engine_name)
      engine.run_engine(
          cfg,
          dist_run_id,
          checkpoint_path,
          checkpoint_folder,
          local_rank=local_rank,
          node_id=node_id,
          hook_generator=hook_generator,
      )
  
file_path: vissl/vissl/engines/engine_registry.py
imports: import abc
  import traceback
  from typing import Any, Callable, List
  from classy_vision.hooks import ClassyHook
  from vissl.config.attr_dict import AttrDict
  from vissl.hooks import default_hook_generator
label_desc: Use image node_id 3 for calling a global function with example usage: run_engine(engine_name, cfg, dist_run_id, checkpoint_path, checkpoint_folder, local_rank, node_id, hook_generator) without return types