Dask distributed:创建连接现有scheduler的本地Worker利用本地闲置算力
本地闲置算力接入Dask分布式集群操作指南
前置准备
- 确认本地机器与集群scheduler网络连通,scheduler的TCP通信端口(默认8786)未被本地或集群侧防火墙拦截
- 记录scheduler的实际通信地址,若scheduler启动时自定义过端口,以实际配置为准
本地启动Worker的两种实现方式
终端命令行启动
在本地终端执行启动命令,Worker会自动和scheduler握手并加入集群调度池:
- 基础启动命令:
dask worker tcp://<scheduler节点IP>:<scheduler端口号> - 可按需追加配置参数:
- 限定本地Worker可使用的硬件配额:比如
--nthreads 4 --memory-limit 8GB,即给该Worker分配4个CPU计算线程、8GB内存空间 - 标注特殊算力资源:针对本地GPU使用场景,追加
--resources "GPU=1",让调度器准确识别节点可调度的GPU数量
- 限定本地Worker可使用的硬件配额:比如
Python进程内嵌启动
无需单独开启终端,直接在运行Client的同Python进程内初始化Worker,实现进程内算力复用:
from dask.distributed import Worker # 初始化本地Worker并连接到现有scheduler local_worker = Worker( "tcp://<scheduler节点IP>:<scheduler端口号>", nthreads=4, memory_limit="8GB", resources={"GPU": 1} # GPU场景下需显式声明资源配置 )
注意:该方式启动的Worker生命周期与当前Python进程绑定,进程退出时Worker会自动从集群下线
接入有效性验证
- 打开scheduler自带的Web监控面板,在Worker列表中查找本地机器IP对应的节点
- 核对节点标注的CPU、内存、特殊资源(如GPU)计数与配置值一致,即代表本地算力已纳入集群统一调度范围
补充说明:此前GPU资源相关的社区讨论中,高频出现的配置误区是未在启动Worker时显式声明GPU资源——Dask调度器不会自动探测节点上的GPU硬件,缺少资源标注时,即使物理GPU可用,调度器也不会向该节点派发GPU类计算任务。
内容的提问来源于stack exchange,提问作者SultanOrazbayev
相关产品推荐
相关产品推荐

