为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Dask 分布式,函数如何自省以了解它是作为分布式 future 还是作为“正常”函数运行?

使用 Dask 分布式,函数如何自省以了解它是作为分布式 future 还是作为“正常”函数运行?

喵喵时光机 2023-09-02 16:41:58
我正在使用 Dask Distributed 通过接口将函数提交到我的集群client.submit。如果集群不可用,我默认为串行、非分布式执行。我希望能够从函数中确定它是作为分布式未来运行还是作为正常函数运行。例如,对于work下面的函数,我想知道它是通过运行client.submit(work)还是简单地作为运行work()。def work():    if is_distributed():       # do stuff    else:       # do different stuff上面应该is_distributed()是什么样子?
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

您应该使用该功能distributed.worker.get_worker。它将返回工作实例,或者引发一个ValueError. 所以你可以做类似的事情


def is_distributed()():

    import distributed.worker

    try:

        get_worker()

        return True

    except ValueError:

        return False


查看完整回答
反对 回复 2023-09-02
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信