You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建Dask集群时默认n_workers取值及自动创建逻辑咨询

Dask LocalCluster 默认Worker数与自动资源适配问题

1. 默认Worker数量的逻辑

当你调用from dask.distributed import Client; client = Client()时,Dask会自动创建一个LocalCluster,其默认Worker数量等于当前机器的CPU核心总数。这就是你本地4核机器生成4个Worker、服务器8核生成8个Worker的原因。

官方文档中没有直接标注n_workers的固定默认值,是因为这个值是动态计算的——Dask会通过内部逻辑自动检测系统可用CPU核心数,以此作为默认Worker数量。

2. 是否根据可用资源自动创建?

是的,LocalCluster默认会根据系统资源自动配置:

  • CPU:Worker数量匹配CPU核心数,充分利用并行计算能力
  • 内存:默认memory_limit="auto",会将系统总内存平均分配给每个Worker

3. 无需提前知晓资源自动创建集群的方法

你当前使用的Client()无参数调用就是最直接的方式,Dask会自动完成资源检测和集群配置。如果需要显式创建LocalCluster,同样可以不指定n_workers参数,让系统自动适配:

from dask.distributed import Client, LocalCluster

# 显式创建自动适配资源的LocalCluster
cluster = LocalCluster()
client = Client(cluster)

如果需要更精细的自动控制(比如限制Worker使用的CPU核心比例),可以结合n_workers和threads_per_worker参数,但默认的无参数配置已经能满足大多数自动适配场景。


附:你提供的LocalCluster类源码文档中文翻译:

class LocalCluster(SpecCluster):
    """创建本地调度器与Worker

    在本地机器上创建包含一个调度器和多个Worker的“集群”。

    参数
    ----------
    n_workers: int
        要启动的Worker数量
    memory_limit: str, float, int, 或 None, 默认值 "auto"
        设置*每个Worker*的内存限制。

        参数类型说明:

        * 如果为None或0,则不施加限制。
        * 如果为"auto",系统总内存会在Worker之间平均分配。
        * 如果为浮点数,则每个Worker使用该比例的系统内存。
        * 如果为表示字节数的字符串(如 ``"1GiB"``),则每个Worker使用该指定内存量。
        * 如果为整数,则每个Worker使用该字节数的内存。
    """

内容的提问来源于stack exchange,提问作者Adriano Matos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 08:02:51