首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >达斯克:如何在“自动”模式下计算内存限制?

达斯克:如何在“自动”模式下计算内存限制?
EN

Stack Overflow用户
提问于 2022-03-16 09:02:41
回答 1查看 55关注 0票数 2

文档显示了“自动”模式下的下列公式:

$ dask-worker .. --memory-limit=auto # TOTAL_MEMORY * min(1, nthreads / total_nthreads)

我的CPU规范:

代码语言:javascript
复制
Architecture:                    x86_64
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1

我的记忆规范:

代码语言:javascript
复制
MemTotal:       16282416 kB
MemFree:         1142108 kB
MemAvailable:    9397036 kB

当我触发dask_worker命令时,将显示以下输出:

代码语言:javascript
复制
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO -               Threads:                          1
distributed.worker - INFO -                Memory:                   3.88 GiB
distributed.worker - INFO - -------------------------------------------------

请你解释一下,3.88 GiB memory是怎么找到的?它似乎与以前的公式不匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-16 14:05:40

我怀疑nthreads是指这个特定的工作人员有多少线程可以调度任务,而total_nthreads是指系统上可用的线程总数。

dask-worker CLI命令与LocalCluster具有相同的默认值(参见GitHub问题)。假设LocalCluster的默认设置是n工作人员,其中n是系统上可用的核数,并将m线程分配给每个工作人员,其中m是每个内核的线程数:

代码语言:javascript
复制
n = 4 # number of cores 
m = 1 # number of threads per core 

TOTAL_MEMORY = 16282416 kB

TOTAL_MEMORY * min(1, 1 / 4)

> 4070604

4070604 kB为3.79 GiB

请看这里的医生:

https://docs.dask.org/en/latest/deploying-cli.html#dask-worker

-n个线程 每个进程的线程数。 --国家方案 不赞成。用‘-n工人’代替。要启动的辅助进程数。如果为阴性,则使用(CPU_COUNT +1+ nprocs)。将“auto”设置为基于CPU_COUNT动态设置nprocs和n线程 -n工人 要启动的辅助进程数。如果为负数,则使用(CPU_COUNT +1+ nworkers)。将“auto”设置为基于CPU_COUNT动态设置nworkers和n线程

还请参阅来源 for LocalCluster以了解设置默认值的方式:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71494237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档