文档显示了“自动”模式下的下列公式:
$ dask-worker .. --memory-limit=auto # TOTAL_MEMORY * min(1, nthreads / total_nthreads)
我的CPU规范:
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我的记忆规范:
MemTotal: 16282416 kB
MemFree: 1142108 kB
MemAvailable: 9397036 kB当我触发dask_worker命令时,将显示以下输出:
distributed.worker - INFO - -------------------------------------------------
distributed.worker - INFO - Threads: 1
distributed.worker - INFO - Memory: 3.88 GiB
distributed.worker - INFO - -------------------------------------------------请你解释一下,3.88 GiB memory是怎么找到的?它似乎与以前的公式不匹配。
发布于 2022-03-16 14:05:40
我怀疑nthreads是指这个特定的工作人员有多少线程可以调度任务,而total_nthreads是指系统上可用的线程总数。
dask-worker CLI命令与LocalCluster具有相同的默认值(参见GitHub问题)。假设LocalCluster的默认设置是n工作人员,其中n是系统上可用的核数,并将m线程分配给每个工作人员,其中m是每个内核的线程数:
n = 4 # number of cores
m = 1 # number of threads per core
TOTAL_MEMORY = 16282416 kB
TOTAL_MEMORY * min(1, 1 / 4)
> 40706044070604 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以了解设置默认值的方式:
https://stackoverflow.com/questions/71494237
复制相似问题