如何让所有 worker 在 dask 中完成相同的任务?
How to let all worker do same task in dask?
我想让所有的工人做同样的任务,像这样:
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个工人的主机名
一个简单的方法来实现你想要的是使用Client.run方法
client.run(socket.gethostname)
这会在所有 worker 和 returns 所有结果上运行函数。它不使用普通的任务调度系统,它的设计目的与您想要的完全不同。
我想让所有的工人做同样的任务,像这样:
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个工人的主机名
一个简单的方法来实现你想要的是使用Client.run方法
client.run(socket.gethostname)
这会在所有 worker 和 returns 所有结果上运行函数。它不使用普通的任务调度系统,它的设计目的与您想要的完全不同。