code: def launch_bps():
      print("BytePS launching " + os.environ["DMLC_ROLE"])
      sys.stdout.flush()
      check_env()
      os.environ["PYTHONUNBUFFERED"] = "1"
      os.environ["UCX_HANDLE_ERRORS"] = os.getenv(
          "UCX_HANDLE_ERRORS", "none"
      )
      if os.environ["DMLC_ROLE"] == "worker":
          if "NVIDIA_VISIBLE_DEVICES" in os.environ:
              local_size = len(
                  os.environ["NVIDIA_VISIBLE_DEVICES"].split(",")
              )
          else:
              local_size = 1
          t = [None] * local_size
  
          bind_to_cores = os.getenv("BYTEPS_NUMA_ON", "1") == "1"
          if bind_to_cores:
              user_override = os.getenv(
                  "BYTEPS_VISIBLE_CPU_CORES", ""
              ).strip()
              if user_override:
                  allocations = parse_num_range(user_override)
              else:
                  allocations = allocate_cpu(local_size)
  
          for i in range(local_size):
              command = " ".join(sys.argv[1:])
              if bind_to_cores:
                  t[i] = PropagatingThread(
                      idx=i,
                      callback=done_callback,
                      target=worker,
                      args=[i, local_size, command, allocations[i]],
                  )
              else:
                  t[i] = PropagatingThread(
                      idx=i,
                      callback=done_callback,
                      target=worker,
                      args=[i, local_size, command],
                  )
              t[i].daemon = True
              t[i].start()
  
          join_threads(t)
  
      elif (
          os.environ.get("BYTEPS_FORCE_DISTRIBUTED", "") == "1"
          or int(os.environ.get("DMLC_NUM_WORKER", "1")) > 1
      ):
          command = "python3 -c 'import byteps.server'"
          if int(os.getenv("BYTEPS_ENABLE_GDB", 0)):
              command = (
                  "gdb -ex 'run' -ex 'bt' -batch --args " + command
              )
          print("Command: %s\n" % command, flush=True)
          my_env = os.environ.copy()
          subprocess.check_call(
              command,
              env=my_env,
              stdout=sys.stdout,
              stderr=sys.stderr,
              shell=True,
          )
  
file_path: byteps/launcher/launch.py
imports: from __future__ import print_function
  import os
  import re
  import subprocess
  import threading
  import sys
  import time
  from functools import reduce
label_desc: Use image node_id 7 for calling a global function with example usage: launch_bps() without return types