如何让所有工作人员都快完成相同的任务?

时间:2018-07-06 12:02:44

标签: dask dask-distributed

我想让所有工人都执行相同的任务,像这样:

from dask import distributed
from distributed import Client,LocalCluster
import dask
import socket


def writer(filename,data):
    with open(filename,'w') as f:
        f.writelines(data)

def get_ip(x):
    return socket.gethostname()
    #writer('/data/1.txt',a)
client = Client('192.168.123.1:8786')

A=client.submit(get_ip, 0,workers=['w1','w2'], pure=False)
print(client.ncores(),
        client.scheduler_info()
#       dask.config.get('distributed')
     )
A.result()  

我有2个工作人员,但只打印1个工作人员的主机名

1 个答案:

答案 0 :(得分:3)

实现所需目标的一种简单方法是使用Client.run方法

client.run(socket.gethostname)

这将在所有工作程序上运行该函数并返回所有结果。它没有使用正常的任务计划系统,该系统的设计目的与您想要的目的完全不同。