Dask 多个客户端

Dask multiple clients

是否可以同时拥有多个客户端?例如,我可以有多个线程 运行 每个线程一个客户端,这样当一个线程阻塞时,其他线程可以继续吗?在这种情况下,每个客户端都会有独立的任务图,它们彼此不依赖。

作为后续问题,如果可能的话,我如何指定 运行 特定任务的位置?当我执行 dd.read_csv,然后调用计算时,我如何知道哪个客户端及其关联的调度程序/工作程序正在执行此操作?

Is it possible to have multiple clients in dask

是的,这是可能的,例如,您可以同时在一个集群上进行 运行ning 计算,在另一个集群上进行其他计算

can I have multiple threads running with one client per thread

你的工作运行不是客户,而是工作人员,所以我不确定你在问什么。

when one thread blocks, the others can continue

客户端主要是异步的,应该阻塞的操作很少,调用时由您决定。

when call compute, how do I know which client and its associated scheduler / workers is executing this

thing.compute() 将使用默认客户端,这将是最近创建的客户端。函数 dask.distributed.get_client() 将为您获取正确的那个。

要选择使用哪个,您可以使用以下任一方法:

fut = client.compute(thing) 
fut.result() or client.gather(fut)

with client:
    thing.compute()