code: def start_worker(address, cpu_num, gpu, log_server_port_range):
      if cpu_num is not None:
          assert (
              cpu_num >= 0
          ), "cpu_num should be greater or equal to 0."
  
      start, end = parse_port_range(log_server_port_range)
      log_server_port = get_port_from_range(start, end)
  
      if not is_master_started(address):
          raise Exception(
              "Worker can not connect to the master node, "
              + "please check if the input address {} ".format(address)
              + "is correct."
          )
      cpu_num = str(cpu_num) if cpu_num else ""
      start_file = __file__.replace("scripts.pyc", "start.py")
      start_file = start_file.replace("scripts.py", "start.py")
  
      command = XPARL_PYTHON + [
          start_file,
          "--name",
          "worker",
          "--address",
          address,
          "--cpu_num",
          str(cpu_num),
          "--log_server_port",
          str(log_server_port),
          "--gpu",
          gpu,
      ]
      FNULL = open(os.devnull, "w")
      p = subprocess.Popen(command, stdout=FNULL, close_fds=True)
      FNULL.close()
  
      check_log_server_started(get_ip_address(), log_server_port)
  
imports: import click
  import locale
  import multiprocessing
  import os
  import random
  import re
  import requests
  import subprocess
  import sys
  import time
  import threading
  import tempfile
  import warnings
  import zmq
  from multiprocessing import Process
  from parl.utils import _IS_WINDOWS, get_free_tcp_port, get_ip_address, get_port_from_range, is_port_available, kill_process, to_str
  from parl.remote.remote_constants import STATUS_TAG
  from parl.remote.utils import XPARL_PYTHON
label_desc: Use image node_id 6 for calling a global function with example usage: start_worker(address, cpu_num, gpu, log_server_port_range) without return types