【问题标题】:What are the default values for the parameters in Dask-ML's Client() functionDask-ML 的 Client() 函数中参数的默认值是什么
【发布时间】:2020-05-28 15:06:39
【问题描述】:

我正在尝试了解 Dask-ML 的 Client() 函数参数。假设我使用 Dask-ML 的 Client() 函数有以下代码:

from dask.distributed import Client
import joblib

client = Client()

如果我没有为Client()函数中的参数指定任何值,参数的默认值是什么:

(i)n_workers

(ii)threads_per_worker

(iii)memory_limit

据我了解,Python 具有阻止多线程的全局解释器锁 (GIL) 功能。如果是这样,为什么在Python中阻止多线程时,Dask-ML的Client()函数有参数threads_per_worker

memory_limit 是指 每个 工人/机器/节点允许的最大内存限制,还是指 所有组合 工人/ 允许的最大内存限制机器/节点?

我已经查看了 Dask-ML 中的文档(请参阅此处:https://docs.dask.org/en/latest/setup/single-distributed.html),但对于上述这些问题,文档并不清楚。

如果有人能解释一下,请提前谢谢你?

【问题讨论】:

    标签: python memory memory-management dask dask-distributed


    【解决方案1】:

    在不带任何参数的情况下调用Client() 默认会启动LocalCluster(),所以

    client = Client()
    

    真的和

    一样
    cluster = LocalCluster()
    client = Client(cluster)
    

    因此,首先,您可以查看 LocalCluster 文档。

    参数的默认值是什么:

    理想值取决于您的硬件和工作负载。我们不预先了解您的工作量,但我们确实了解您的硬件,因此我们尝试在此基础上做出明智的决定。

    今天,该政策是将所有逻辑核心和内存平均分配给您拥有的核心数量的平方根。因此,如果您有 12 个内核,那么我们将创建四个进程,每个进程具有三个线程。

    在大多数情况下,这往往是一个不错的默认设置,但我们鼓励您尝试一下,看看您的工作负载在不同情况下是否表现得更好。

    【讨论】:

    • 谢谢@MRocklin。只是为了确认一下,您指的是 link LocalCluster 文档所在的位置吗?
    • 是的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2011-04-09
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多