code: def create_communicator(
      ignore_error=False, extension_module="cudnn", type_config="float"
  ):
      global _current_communicator
  
      if os.environ.get("OMPI_COMM_WORLD_SIZE") is not None:
          from nnabla.ext_utils import get_extension_context
  
          context = get_extension_context(
              extension_module, type_config=type_config
          )
          try:
              logger.log(
                  99,
                  "Create communicator with contexts {}".format(
                      context
                  ),
              )
              _current_communicator = C.MultiProcessCommunicator(
                  context
              )
              _current_communicator.init()
              context.device_id = str(
                  _current_communicator.rank
                  % _current_communicator.size
              )
              if _current_communicator.size == 1:
                  _current_communicator = None
          except:
              if not ignore_error:
                  raise
              logger.warning(
                  "Failed to initialize nnabla.communicators."
              )
              _current_communicator = None
      else:
          _current_communicator = None
  
      return _current_communicator
  
imports: import os
  import nnabla.communicators
  from nnabla.logger import logger
label_desc: Use image node_id 2 for calling a global function with example usage: create_communicator(ignore_error, extension_module, type_config) and returns: _current_communicator