code: def _run(
      cls, test_name, config, rank, world_size, file, exception_queue
  ):
      self = cls(test_name)
  
      self.file = file
      self.rank = int(rank)
      self.world_size = world_size
  
      # Copy config to child processes.
      cfg.set_config(config)
  
      # set environment variables:
      communicator_args = {
          "WORLD_SIZE": self.world_size,
          "RANK": self.rank,
          "RENDEZVOUS": "file://%s" % self.file,
          "BACKEND": "gloo",
      }
      for key, val in communicator_args.items():
          os.environ[key] = str(val)
  
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          try:
              crypten.init()
          except BaseException:
              tb_string = traceback.format_exc()
              exception_queue.put(tb_string)
              sys.exit(0)
      self.setUp()
  
      try:
          getattr(self, test_name)()
          exception_queue.put(None)
      except BaseException:
          tb_string = traceback.format_exc()
          exception_queue.put(tb_string)
      crypten.uninit()
      sys.exit(0)
  
imports: import multiprocessing
  import os
  import sys
  import tempfile
  import traceback
  import unittest
  import warnings
  from functools import wraps
  import crypten.communicator
  import crypten.debug
  import torch
  import torch.distributed
  from crypten.config import cfg
label_desc: Use image node_id 10 for calling the MultiProcessTestCase obj's underlying member method code with example usage: obj._run(cls, test_name, config, rank, world_size, file, exception_queue) without return types