multiprocessing - DASK python库中的工人定义,为什么工人比cpu核心多
问题描述
我真的很困惑工人是什么。
一般来说,我会说 dask 集群中的一个节点,它可以根据调度程序的指令计算任务。但是,我认为单个节点可以是一个 cpu 核心,每个 worker 的线程数最多是每个 cpu 核心的线程数。在单台机器上工作时,我可以设置比笔记本电脑中的 CPU 内核更多的工作线程数,并且每个工作线程的线程数大于每个 cpu 内核的线程数。
那么当我设置本地集群时,实际上是什么工作人员?
它指的是我机器上的物理东西?
为什么没有错误出来?
解决方案
您可以在系统上运行任意数量的线程——因为您拥有现代的多任务操作系统。操作系统负责唤醒线程并在 CPU 的核心中运行它们,在您的情况下,最多可以同时运行四个线程。因此,总共有四个以上的 dask 工作线程可能不符合您的利益。
您可以选择适合您的应用程序的工作程序(读取:进程)和线程数,其中进程不会被 GIL 相互阻塞,但线程可以有效地共享内存。
推荐阅读
- python - Python中的可变和不可变对象
- gcloud - 将文件写入 gcloud 存储桶应该很慢吗?
- xaml - 在 Xamarin 表单中同时显示选项卡栏和工具栏
- python-3.x - 按下按钮时如何停止文本标签的闪烁?
- csv - 如何将具有相同列标题的目录中的多个 CSV 文件传递给 JMETER 中的单个 REST API 并使用 1000 个用户进行测试
- html - 我尝试使用所有技术单击按钮。但我无法点击它
- amazon-web-services - 从可公开访问的 rds 数据库转移到使用 bastion ec2 实例连接到它
- android - 网络请求对话框被关闭 (Android Q)
- ios - 在映射集合时快速获取异常“所需类型 = NSOrderedSet;给定类型 = __NSArrayM”
- websphere-liberty - Websphere Liberty 对工作管理器的支持