code: def _init_comms(self):
      if self.inter_mpi_comm is not None:
          assert self.intra_nccl_comm is not None
          return
  
      intra_mpi_comm = _communication_utility.init_intra_mpi_comm(
          self.mpi_comm, self.intra_rank, self.inter_rank
      )
      self.inter_mpi_comm = _communication_utility.init_inter_mpi_comm(
          self.mpi_comm, self.intra_rank, self.inter_rank
      )
      self.intra_nccl_comm = _communication_utility.init_nccl_comm(
          intra_mpi_comm
      )
  
file_path: chainer/chainermn/communicators/non_cuda_aware_communicator.py
imports: import warnings
  import chainer.cuda
  import chainerx
  import math
  import mpi4py.MPI
  import numpy
  from chainermn.communicators import _communication_utility
  from chainermn.communicators import _memory_utility
  from chainermn.communicators import mpi_communicator_base
  from chainermn import nccl
label_desc: Use image node_id 3 for calling the NonCudaAwareCommunicator obj's underlying member method code with example usage: obj._init_comms() without return types