首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Dask工人中设置`n螺纹‘的最佳选项

在Dask工人中设置`n螺纹‘的最佳选项
EN

Stack Overflow用户
提问于 2022-02-02 12:47:05
回答 1查看 140关注 0票数 0

我将使用达斯克KubeCluster在Kubernetes上执行多个算法。我希望一个工作人员运行一个并且只有一个算法,所以我混淆了在初始化时传递给dask的nthreads参数。

代码语言:javascript
复制
kind: Pod
metadata:
  labels:
    app: MyName
spec:
  restartPolicy: Never
  containers:
  - image: MyFunnyDockerImage
    imagePullPolicy: Always
    args: [dask-worker, --nthreads, '4', --no-dashboard, --memory-limit, 8GB, --death-timeout, '60']
    name: execslotting

    resources:
      limits:
        cpu: "4"
        memory: 8G
      requests:
        cpu: "4"
        memory: 8G

  imagePullSecrets: 
    - name: acr-secret

当我设置--nthreads=4时,我是否留下了在该工作程序中运行4次算法执行的可能性?

EN

回答 1

Stack Overflow用户

发布于 2022-02-03 10:28:42

nthreads参数指定了dask进程可用于运行计算的主机或pod上的线程数。见达斯克工人医生

当您设置--nthreads=4时,您告诉Dask,工作进程可以使用4个线程,而不管这个吊舱上有多少个线程可用。例如,如果您的pod有8个可用线程,如果您指定--nthreads=4,Dask只会使用其中的一半。

还请参阅CPU单元上的Kubernetes文档,以获得关于vCPU单元如何与Kubernetes中的线程关联的更详细说明。

如果您不指定nthreads,那么Dask将使用机器上可用的CPU内核来设置一个正常的缺省值,这似乎与Kubernetes处理多线程的方式相匹配(1 vCPU =1超线程)。

在您的示例中,您已经设置了resources.requests.cpu=4,这意味着pod将有4个可用线程可供使用。因此,设置--nthreads=4将允许Dask进程充分利用Dask资源。虽然我相信不设置nthreads也会达到同样的效果。

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

https://stackoverflow.com/questions/70955894

复制
相关文章

相似问题

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