0
这是一个后续问题,以回答我之前关于使用Dask计算到access one element in a large array的问题之一的可能答案。使用Dask计算会导致执行挂起
为什么使用Dask计算会导致执行挂起? 这里的工作代码片段:
#Suppose you created a scheduler at the ip address of 111.111.11.11:8786
from dask.distributed import Client
import dask.array as da
# client1
client1 = Client("111.111.11.11:8786")
x = da.ones(10000000, chunks=(100000,)) # 1e7 size array cut into 1e5 size chunks
x = x.persist()
client1.publish_dataset(x=x)
# client2
client2 = Client("111.111.11.11:8786")
x = client2.get_dataset('x') #get the lazy collection x
result = x[0].compute() #code execution hangs here
print(result)
嗨MDurant,当我在定义client1之前坚持,滞后仍然发生。为了保持一致性,我更新了上例中的代码。 – sudouser2010
滞后就好 - 当你坚持时你仍然在工人中创建数据 - 但现在它成功了吗?您的代码几乎立即在我的笔记本电脑上运行。 – mdurant
我能够得到它的工作。我有两个问题。首先,我不是使用111.111.11.11:8786,而是使用tcp://111.111.11.11:8786。其次,我没有为调度员创建任何工作人员。有趣的是,在使用persist后定义客户端时,我能够使代码工作。 – sudouser2010