code: def test_non_variable_send(param):
      """Checks if backward will be called even if inputs are not Variable.
  
      This test confirms whether deadlock occurs when numpy/cupy array is
      given as an input of send.
      In this case, the input will be converted to chainer Variable without
      ``requires_grad``, thus ``backward`` will not be called without any
      modification.
      """
      communicator = chainermn.create_communicator("naive")
  
      if communicator.size < 2:
          pytest.skip("This test is for multinode")
  
      rank_send = (communicator.rank + 1) % communicator.size
      rank_recv = (communicator.rank - 1) % communicator.size
  
      if communicator.rank == 0:
          x = numpy.ones((1, 10)).astype(param.dtype)
          phi = chainermn.functions.send(
              x, communicator, rank=rank_send
          )
          (x,) = chainermn.functions.pseudo_connect(phi, x)
          y = chainer.functions.sum(x)
          t = numpy.array(0).astype(param.dtype)
          z = chainer.functions.mean_squared_error(y, t)
          z.backward()
  
      elif communicator.rank == communicator.size - 1:
          x = chainermn.functions.recv(communicator, rank=rank_recv)
          y = chainer.functions.sum(x)
          t = numpy.array(0).astype(param.dtype)
          z = chainer.functions.mean_squared_error(y, t)
          z.backward()
  
      else:
          x = chainermn.functions.recv(communicator, rank=rank_recv)
          phi = chainermn.functions.send(
              x, communicator, rank=rank_send
          )
          phi.backward()
  
imports: import functools
  import chainer
  import copy
  from chainer.backends.cuda import cupy
  import chainer.testing
  import chainer.testing.attr
  import numpy
  import pytest
  import chainermn
  from chainer.functions import sigmoid
  from chainer.functions import mean_squared_error
label_desc: Use image node_id 14 for calling a global function with example usage: test_non_variable_send(param) without return types