我有一小群机器正在执行map-reduce类型的操作。头节点上有一个jupyter笔记本,一个dasch-scheduler和一个dask-worker。我想向jupyter笔记本中的所有计算机提交一些任务,并将所有结果返回到头节点。但是,我不想要等他们全部完成。因此,从我的Jupyter笔记本中,我想将期货的处理提交给特别是 local worker ,后者将结果返回时将其写入磁盘。这是一些代码来说明:
import dask.distributed
# the local machine has a dask-scheduler and a dask-worker.
client = dask.distributed.Client("localhost:8786")
def write_result(i, result):
with open(str(i), "wb") as f:
f.write(str(result))
def write_results(futures):
for i, future in enumerate(dask.distributed.as_completed(futures)):
write_results(i, future)
def inc(x):
return x+1
futures = client.map(inc, range(100))
#this should happen ONLY ON THE LOCAL WORKER
client.submit(write_results, futures)
我可以简单地拥有多个dask客户端,但这似乎很简单。有没有办法指定本地工人?