


"worker1",
  >>>     AsyncExecutionClass.static_async_add,
  >>>     args=("worker2", torch.ones(2), 1, 2)
  >>> )
  >>> print(ret)  # prints tensor([4., 4.])
  >>>
  >>> ret = rpc.rpc_sync(
  >>>     "worker1",
  >>>     AsyncExecutionClass.class_async_add,
  >>>     args=("worker2", torch.ones(2), 1, 2)
  >>> )
  >>> print(ret)  # prints tensor([4., 4.])




  This decorator also works with RRef helpers, i.e., .
  "torch.distributed.rpc.RRef.rpc_sync()",
  "torch.distributed.rpc.RRef.rpc_async()", and
  "torch.distributed.rpc.RRef.remote()".

  >>> from torch.distributed import rpc
  >>>
  >>> # reuse the AsyncExecutionClass class above
  >>> rref = rpc.remote("worker1", AsyncExecutionClass)
  >>> ret = rref.rpc_sync().static_async_add("worker2", torch.ones(2), 1, 2)
  >>> print(ret)  # prints tensor([4., 4.])
  >>>
  >>> rref = rpc.remote("worker1", AsyncExecutionClass)
