我正在使用 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
添加回答
舉報
0/150
提交
取消