我正在与Mutiple Systems一起工作。每个工作系统都有本地存储的数据的一部分。我希望每个工人仅在其各自的文件上完成的计算。
我尝试使用:
distribation.scheduler.decide_worker((
send_task_to_worker(worker,键(
,但我无法自动为每个文件分配任务。
另外,我是否可以访问工人的本地文件?使用TCP地址,我只能访问为Dask创建的工人的临时文件夹。
您可以定位计算,以使用workers=
关键字对客户端上的各种方法运行。有关更多信息
您可能会在每个工人上运行一个函数,告诉您存在哪些文件:
>>> client.run(os.listdir, my_directory)
{'192.168.0.1:52523': ['myfile1.dat', 'myfile2.dat'],
'192.168.0.2:4244': ['myfile3.dat'],
'192.168.0.3:5515': ['myfile4.dat', 'myfile5.dat']}
您可能会提交计算以专门针对那些工人。
future = client.submit(load, 'myfile1.dat', workers='192.168.0.1:52523')
如果您使用的是dask.delayed,也可以将workers=
传递给`persist方法。有关更多信息