code: def run_controller(
      use_gloo, gloo_run, use_mpi, mpi_run, use_jsrun, js_run, verbosity
  ):
      # keep logic in sync with is_gloo_used(...)
      verbose = verbosity is not None and verbosity >= 2
      if use_gloo:
          if not gloo_built(verbose=verbose):
              raise ValueError(
                  "Gloo support has not been built.  If this is not expected, ensure CMake is installed "
                  "and reinstall Horovod with HOROVOD_WITH_GLOO=1 to debug the build error."
              )
          gloo_run()
      elif use_mpi:
          if not mpi_built(verbose=verbose):
              raise ValueError(
                  "MPI support has not been built.  If this is not expected, ensure MPI is installed "
                  "and reinstall Horovod with HOROVOD_WITH_MPI=1 to debug the build error."
              )
          mpi_run()
      elif use_jsrun:
          if not mpi_built(verbose=verbose):
              raise ValueError(
                  "MPI support has not been built.  If this is not expected, ensure MPI is installed "
                  "and reinstall Horovod with HOROVOD_WITH_MPI=1 to debug the build error."
              )
          if not lsf.LSFUtils.using_lsf():
              raise ValueError(
                  "Horovod did not detect an LSF job.  The jsrun launcher can only be used in that environment. "
                  "Please, pick a different launcher for other environments."
              )
          js_run()
      else:
          if mpi_built(verbose=verbose):
              if lsf.LSFUtils.using_lsf() and is_jsrun_installed():
                  js_run()
              else:
                  mpi_run()
          elif gloo_built(verbose=verbose):
              gloo_run()
          else:
              raise ValueError(
                  "Neither MPI nor Gloo support has been built. Try reinstalling Horovod ensuring that "
                  "either MPI is installed (MPI) or CMake is installed (Gloo)."
              )
  
imports: import argparse
  import hashlib
  import logging
  import io
  import os
  import sys
  import textwrap
  import warnings
  import yaml
  import horovod
  from horovod.common.util import extension_available, gloo_built, mpi_built, nccl_built, ddl_built, ccl_built
  from horovod.runner.common.util import config_parser, hosts, safe_shell_exec, secret, timeout
  from horovod.runner.common.util import settings
  from horovod.runner.driver import driver_service
  from horovod.runner.elastic import settings
  from horovod.runner.elastic import discovery
  from horovod.runner.util import cache, threads, network, lsf
  from horovod.runner.gloo_run import gloo_run, gloo_run_elastic
  from horovod.runner.mpi_run import mpi_run
  from horovod.runner.js_run import js_run, is_jsrun_installed
  from horovod.runner.http.http_client import read_data_from_kvstore, put_data_into_kvstore
  from horovod.runner.http.http_server import KVStoreServer
  from horovod.runner.util.remote import get_remote_command
label_desc: Use image node_id 14 for calling a global function with example usage: run_controller(use_gloo, gloo_run, use_mpi, mpi_run, use_jsrun, js_run, verbosity) without return types