mindspore.communication.comm_func.batch_isend_irecv
=================================================================================

.. py:function:: mindspore.communication.comm_func.batch_isend_irecv(p2p_op_list)

    异步地发送和接收张量。

    .. note::
        - 不同设备中, `p2p_op_list` 中的 `P2POp` 的 ``"isend`` 和 ``"irecv"`` 应该互相匹配。
        - `p2p_op_list` 中的 `P2POp` 应该使用同一个通信组。
        - 暂不支持 `p2p_op_list` 中的 `P2POp` 含有 `tag` 入参。
        - `p2p_op_list` 中的 `P2POp` 的 `tensor` 的值不会被最后的结果原地修改。
        - 仅支持PyNative模式,目前不支持Graph模式。

    参数:
        - **p2p_op_list** (P2POp) - 包含 `P2POp` 类型对象的列表。 `P2POp` 指的是 :class:`mindspore.communication.comm_func.P2POp`。

    返回:
        Tuple(Tensor)。根据 `p2p_op_list` 中的 `P2POp` 的发送/接收顺序,得到的接收张量元组。
        当 `P2POp` 为发送时, 相应位置的结果是没有意义的张量。
        当 `P2POp` 为接收时, 相应位置的结果是从其他设备接收到的张量。

    异常:
        - **TypeError** - `p2p_op_list` 中不全是 `P2POp` 类型。

    样例:

    .. note::
        .. include:: ../ops/mindspore.ops.comm_note.txt

        该样例需要在2卡环境下运行。