在分布式生成函数内部调用dark时丢失本地客户端

时间:2017-02-14 09:45:50

标签: dask

我正在尝试在通过分布式发送给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))

问题在于,在执行多个Xb个实例时,有时会有效,有时我会收到异常Exception: Client not running. Status: closed

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

当您将输入dask.array Xb传递给dask.delayed函数时,它们将作为numpy数组到达。我建议只使用NumPy函数。

或许,也许你正试图完成其他事情?

如果要在dask.arrays上调用dask.array函数,可以从普通的python会话中完成。没有理由使用local_client