将numpy数组发布到dask.distributed.Queue对象

将numpy数组发布到dask.distributed.Queue对象,dask,Dask,我们注意到,队列和变量等通信对象不支持dask或numpy数组 msgpack似乎不喜欢numpy数组。使用这样的东西有意义吗 我们正在尝试将工作循环的中间结果发布回队列。我们希望实时使用这些结果并将其打印到笔记本中。从 队列还可以发送小段信息,任何msgpack可编码的信息(int、string、bools、list、dict等)。这有助于发回小分数或管理信息: def func(x): try: ... except Exception as e:

我们注意到,队列和变量等通信对象不支持dask或numpy数组

msgpack似乎不喜欢numpy数组。使用这样的东西有意义吗


我们正在尝试将工作循环的中间结果发布回队列。我们希望实时使用这些结果并将其打印到笔记本中。

队列还可以发送小段信息,任何msgpack可编码的信息(int、string、bools、list、dict等)。这有助于发回小分数或管理信息:

def func(x):
    try:
       ...
    except Exception as e:
        error_queue.put(str(e))

error_queue = Queue()
队列由中央调度器进行调解,因此它们不适合发送大量数据(您发送的所有内容都将通过中心点进行路由)。它们非常适合在少量元数据或未来数据之间移动。这些未来可能会安全地指向更大的数据块:

>>> x = ... # my large numpy array

# Don't do this!
>>> q.put(x)

# Do this instead
>>> future = client.scatter(x)
>>> q.put(future)

# Or use futures for metadata
>>> q.put({'status': 'OK', 'stage=': 1234})

如果你想在工人之间移动大量数据,那么你也可以考虑下面几节描述的Pub/Sub系统。

< P>从

复制文档 队列还可以发送小段信息,任何msgpack可编码的信息(int、string、bools、list、dict等)。这有助于发回小分数或管理信息:

def func(x):
    try:
       ...
    except Exception as e:
        error_queue.put(str(e))

error_queue = Queue()
队列由中央调度器进行调解,因此它们不适合发送大量数据(您发送的所有内容都将通过中心点进行路由)。它们非常适合在少量元数据或未来数据之间移动。这些未来可能会安全地指向更大的数据块:

>>> x = ... # my large numpy array

# Don't do this!
>>> q.put(x)

# Do this instead
>>> future = client.scatter(x)
>>> q.put(future)

# Or use futures for metadata
>>> q.put({'status': 'OK', 'stage=': 1234})

如果你想在工人之间移动大量的数据,那么你也可以考虑下面几节描述的Pub/Sub系统。