code: def __call__(self, *inputs):
      cells = [None for _ in range(self.n_cells)]
  
      if self.rank_in is not None:
          cells = [
              chainermn.functions.recv(
                  self.communicator, rank=self.rank_in
              )
              for _ in range(self.n_cells)
          ]
  
      outputs = self.actual_rnn(*(tuple(cells) + inputs))
      cells = outputs[:-1]
  
      delegate_variable = None
      if self.rank_out is not None:
          cell = cells[0]
          for i in range(self.n_cells):
              delegate_variable = chainermn.functions.send(
                  cell, self.communicator, rank=self.rank_out
              )
              if i < self.n_cells - 1:
                  (cell,) = chainermn.functions.pseudo_connect(
                      delegate_variable, cells[i + 1]
                  )
  
      return outputs + tuple([delegate_variable])
  
file_path: chainer/chainermn/links/n_step_rnn.py
imports: import chainer
  import chainer.links.rnn
  import chainermn.functions
label_desc: Use image node_id 2 for calling the _MultiNodeNStepRNN obj's underlying member method code with example usage: obj.__call__() and returns: unknown