code: def run(
      host: str,
      hostfile: str,
      num_nodes: int,
      nproc_per_node: int,
      include: str,
      exclude: str,
      master_addr: str,
      master_port: int,
      extra_launch_args: str,
      ssh_port: int,
      user_script: str,
      user_args: str,
  ) -> None:
      """
      To launch multiple processes on a single node or multiple nodes via command line.
  
      Usage::
          # run with 4 GPUs on the current node use default port 29500
          colossalai run --nprocs_per_node 4 train.py
  
          # run with 2 GPUs on the current node at port 29550
          colossalai run --nprocs_per_node 4 --master_port 29550 train.py
  
          # run on two nodes
          colossalai run --host <host1>,<host2> --master_addr host1  --nprocs_per_node 4 train.py
  
          # run with hostfile
          colossalai run --hostfile <file_path> --master_addr <host>  --nprocs_per_node 4 train.py
  
          # run with hostfile with only included hosts
          colossalai run --hostfile <file_path> --master_addr host1 --include host1,host2  --nprocs_per_node 4 train.py
  
          # run with hostfile excluding the hosts selected
          colossalai run --hostfile <file_path> --master_addr host1 --exclude host2  --nprocs_per_node 4 train.py
      """
      if not user_script.endswith(".py"):
          click.echo(
              f"Error: invalid Python file {user_script}. Did you use a wrong option? Try colossalai run --help"
          )
          exit()
  
      args_dict = locals()
      args = Config(args_dict)
      args.user_args = list(args.user_args)
      launch_multi_processes(args)
  
label_desc: Use image node_id 1 for calling a global function with example usage: run(host, hostfile, num_nodes, nproc_per_node, include, exclude, master_addr, master_port, extra_launch_args, ssh_port, user_script, user_args) without return types