code: def __init__(self, actual_iterator, communicator, rank_master):
      super(_MultiNodeIteratorMaster, self).__setattr__(
          "communicator", communicator
      )
      super(_MultiNodeIteratorMaster, self).__setattr__(
          "actual_iterator", actual_iterator
      )
      super(_MultiNodeIteratorMaster, self).__setattr__(
          "rank_master", rank_master
      )
  
      _dataset_size = numpy.ones((1,)).astype(numpy.float32) * len(
          self.actual_iterator.dataset
      )
      # TODO(tsutsumi): potential deadlock?
      self.communicator.bcast(_dataset_size, root=self.rank_master)
      if self.actual_iterator._state.order is not None:
          self.communicator.bcast(
              self.actual_iterator._state.order.astype(numpy.float32),
              root=self.rank_master,
          )
      else:
          # Without shuffle, order is None.
          self.communicator.bcast(
              -numpy.ones((1,)).astype(numpy.float32),
              root=self.rank_master,
          )
  
imports: import chainer
  import numpy
label_desc: Use image node_id 1 to create a new _MultiNodeIteratorMaster object from inherited base classes: chainer.dataset.iterator with example: obj = _MultiNodeIteratorMaster(actual_iterator, communicator, rank_master)