rpc_async

paddle.distributed.rpc. rpc_async ( to, fn, args=None, kwargs=None, timeout=- 1 ) [源代码]

发起一个非阻塞的 RPC 调用,在 to 上运行函数 fn

参数

  • to (str) - 目标 worker 的名字。

  • fn (fn) - 一个可调用的函数,比如 Python 的函数。

  • args (tuple,可选) - 函数 fn 的参数,默认为 None。

  • kwargs (str,可选) - 函数 fn 的字典参数,默认是 None。

  • timeout (int,可选) - RPC 调用的超时时间,使用秒表示。如果该 RPC 调用没有在此时间内完成,则会引发异常,表示 RPC 调用超时。该值小于或等于 0 表示无限大的超时时间,即永远不会引发超时异常。默认为 -1。

返回

返回一个 FutureWrapper 对象。当 RPC 调用完成,fn 的运行结果可以使用 fut.wait() 的方式获取。

代码示例

>>> import paddle.distributed.rpc as rpc

>>> def add(a, b):
...     return a + b

>>> rpc.init_rpc("worker0", rank=0, world_size=1,
...         master_endpoint="127.0.0.1:8003")

>>> fut = rpc.rpc_async("worker0", add, args=(2, 3))
>>> print(fut.wait())
5

>>> rpc.shutdown()