dask:memory_limit 控制什么?
dask: What does memory_limit control?
在dask的LocalCluster中,有一个参数memory_limit
。我无法在文档 (https://distributed.dask.org/en/latest/worker.html#memory-management) 中找到有关限制是针对每个工作人员、每个线程还是针对整个集群的详细信息。这可能至少部分是因为我无法理解关键字的传递方式。
例如,在这段代码中:
cluster = LocalCluster(n_workers=2,
threads_per_worker=4,
memory_target_fraction=0.95,
memory_limit='32GB')
每个工人 32 GB 吗?两个工人在一起?还是针对每个线程?
我的问题的部分原因是 运行 a LocalCluster
with n_workers=1
and memory_limit=32GB
,但它被 Slurm Out-Of-Memory killer 杀死了使用内存太大。
LocalCluster 的 memory_limit
关键字参数设置每个工作人员的限制。
注意,如果给定的 memory_limit 大于可用内存,则将为每个 worker 设置总可用内存。此行为尚未记录,但此处有一个相关问题:https://github.com/dask/dask/issues/8224
带代码的集群截图:
from dask.distributed import LocalCluster, Client
cluster = LocalCluster(n_workers=2,
threads_per_worker=4,
memory_target_fraction=0.95,
memory_limit='8GB')
client = Client(cluster)
client
在dask的LocalCluster中,有一个参数memory_limit
。我无法在文档 (https://distributed.dask.org/en/latest/worker.html#memory-management) 中找到有关限制是针对每个工作人员、每个线程还是针对整个集群的详细信息。这可能至少部分是因为我无法理解关键字的传递方式。
例如,在这段代码中:
cluster = LocalCluster(n_workers=2,
threads_per_worker=4,
memory_target_fraction=0.95,
memory_limit='32GB')
每个工人 32 GB 吗?两个工人在一起?还是针对每个线程?
我的问题的部分原因是 运行 a LocalCluster
with n_workers=1
and memory_limit=32GB
,但它被 Slurm Out-Of-Memory killer 杀死了使用内存太大。
LocalCluster 的 memory_limit
关键字参数设置每个工作人员的限制。
注意,如果给定的 memory_limit 大于可用内存,则将为每个 worker 设置总可用内存。此行为尚未记录,但此处有一个相关问题:https://github.com/dask/dask/issues/8224
带代码的集群截图:
from dask.distributed import LocalCluster, Client
cluster = LocalCluster(n_workers=2,
threads_per_worker=4,
memory_target_fraction=0.95,
memory_limit='8GB')
client = Client(cluster)
client