这是对这个问题的跟进。我现在正在尝试在 AWS 上的多个 EC2 节点上运行 Dask。
我能够在第一台机器上启动调度程序:
然后我在其他几台机器上启动工人。从其他机器我可以使用 访问调度程序nc -zv ${HOST} ${PORT}
,并且工作人员似乎能够连接到主服务器,正如工作人员的 sysout: 所证明的那样Registered to: tcp://10.201.101.108:31001
,但工作人员几乎立即抱怨超时循环。
然后从主节点,在我的 Jupyter 笔记本中连接到调度程序:
dask_client = Client('10.201.101.108:31001')
但是工作不会传播到工作节点(工作节点 CPU 保持在 <1%),甚至不会传播到与调度程序在同一台机器上运行的工作节点。这是一个高度并行化的任务,并且在单台机器上运行时(即使用Client(processes=False)
消耗机器上的每个内核)。