我正在尝试在通过分布式发送给worker的函数内部执行一些任务操作。代码的简化版本是
client = Client(...)
X_ = dask.array.from_array(...)
X = dask.persist(X_)
def func(X, b):
with distributed.local_client() as c:
with dask.set_options(get=c.get):
return dask.lu_solve(X, b)
client.persist(dask.do(func)(X, b))
问题在于,在执行多个X
,b
个实例时,有时会有效,有时我会收到异常Exception: Client not running. Status: closed
关于如何解决这个问题的任何想法?
答案 0 :(得分:0)
当您将输入dask.array X
和b
传递给dask.delayed函数时,它们将作为numpy数组到达。我建议只使用NumPy函数。
或许,也许你正试图完成其他事情?
如果要在dask.arrays上调用dask.array函数,可以从普通的python会话中完成。没有理由使用local_client
。