code: def run(args, local_rank, world_size, nccl_id):
      sgd = opt.SGD(
          lr=args.lr,
          momentum=0.9,
          weight_decay=1e-5,
          dtype=singa_dtype[args.precision],
      )
      sgd = opt.DistOpt(
          sgd,
          nccl_id=nccl_id,
          local_rank=local_rank,
          world_size=world_size,
      )
      train_cnn.run(
          sgd.global_rank,
          sgd.world_size,
          sgd.local_rank,
          args.max_epoch,
          args.batch_size,
          args.model,
          args.data,
          sgd,
          args.graph,
          args.verbosity,
          args.dist_option,
          args.spars,
          args.precision,
      )
  
file_path: singa/examples/cifar_distributed_cnn/train_multiprocess.py
imports: from singa import singa_wrap
  from singa import opt
  from singa import tensor
  import argparse
  import train_cnn
  import multiprocessing
  import warnings
label_desc: Use image node_id 1 for calling a global function with example usage: run(args, local_rank, world_size, nccl_id) without return types