def synchronize(handle): """ Synchronizes an asynchronous allreduce, allgather or broadcast operation until it's completed. Returns the result of the operation. Arguments: handle: A handle returned by an allreduce, allgather or broadcast asynchronous operation. Returns: An output tensor of the operation. """ if handle not in _handle_map: return mpi_lib.horovod_torch_wait_and_clear(handle) _, output = _handle_map.pop(handle) return output
def synchronize(handle): """ Synchronizes an asynchronous allreduce, allgather, alltoall or broadcast operation until it's completed. Returns the result of the operation. Arguments: handle: A handle returned by an allreduce, allgather, alltoall or broadcast asynchronous operation. Returns: A single output tensor of the operation or a tuple of multiple output tensors. """ if handle not in _handle_map: return try: mpi_lib.horovod_torch_wait_and_clear(handle) output = _handle_map.pop(handle)[-1] return output except RuntimeError as e: raise HorovodInternalError(e)