猿问

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

我正在使用 Dask Distributed 通过接口将函数提交到我的集群client.submit。如果集群不可用,我默认为串行、非分布式执行。我希望能够从函数中确定它是作为分布式未来运行还是作为正常函数运行。


例如,对于work下面的函数,我想知道它是通过运行client.submit(work)还是简单地作为运行work()。


def work():

    if is_distributed():

       # do stuff

    else:

       # do different stuff


上面应该is_distributed()是什么样子?


喵喵时光机
浏览 121回答 1
1回答

慕神8447489

您应该使用该功能distributed.worker.get_worker。它将返回工作实例,或者引发一个ValueError. 所以你可以做类似的事情def is_distributed()():    import distributed.worker    try:        get_worker()        return True    except ValueError:        return False
随时随地看视频慕课网APP

相关分类

Python
我要回答