1

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

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

4

1 回答 1

2

是否可以有多个客户在dask

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

我可以让多个线程与每个线程一个客户端一起运行吗

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

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

客户端很大程度上是异步的,几乎没有应该阻塞的操作,这取决于你何时调用它们。

调用计算时,我如何知道哪个客户端及其关联的调度程序/工作人员正在执行此操作

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

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

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

with client:
    thing.compute()
于 2020-06-01T18:55:18.597 回答