code: def _launch(
      func,
      rank,
      world_size,
      rendezvous_file,
      queue,
      func_args,
      func_kwargs,
  ):
      communicator_args = {
          "WORLD_SIZE": world_size,
          "RANK": rank,
          "RENDEZVOUS": "file://%s" % rendezvous_file,
          "DISTRIBUTED_BACKEND": "gloo",
      }
      for key, val in communicator_args.items():
          os.environ[key] = str(val)
  
      crypten.init()
      return_value = func(*func_args, **func_kwargs)
      crypten.uninit()
  
      queue.put((rank, return_value))
  
file_path: CrypTen/crypten/mpc/context.py
imports: import functools
  import logging
  import multiprocessing
  import os
  import tempfile
  from operator import itemgetter
  import crypten
  from crypten.communicator import DistributedCommunicator
label_desc: Use image node_id 1 for calling a global function with example usage: _launch(func, rank, world_size, rendezvous_file, queue, func_args, func_kwargs) without return types