Dask多个客户端

问题描述 投票:1回答:1

是否可能有多个客户端?例如,我是否可以让多个线程同时每个线程运行一个客户端,以便当一个线程阻塞时,其他线程可以继续运行?在这种情况下,每个客户端都将具有彼此不依赖的单独的任务图。

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

dask dask-distributed dask-delayed dask-dataframe
1个回答
1
投票

是否可能有多个客户端

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

我是否可以有多个线程,每个线程有一个客户端运行

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

[当一个线程阻塞时,其他线程可以继续

客户端基本上是异步的,应该阻止的操作很少,并且取决于您何时呼叫它们。

当调用compute时,我如何知道哪个客户端及其相关的调度程序/工作程序正在执行此操作

thing.compute()将使用默认客户端,它将是最近创建的客户端。函数dask.distributed.get_client()将为您获取合适的函数。

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

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

with client:
    thing.compute()
© www.soinside.com 2019 - 2024. All rights reserved.