parallel-processing - 为什么计算失败了?
问题描述
我为每个工人创建了 4 个进程。
"dask-worker scheduler_IP --nprocs 4 --nthreads 1 --resources "process=1"".
我为工人分配了 52 个任务。
"A = client.map(printFunc, range(0, 52), resources={'process': 1})"
def printFunc(x):
time.sleep(5)
print(x)
方法“printFunc”被定义为休眠 5 秒。由于我创建了4个进程,命令行会同时打印4个数字,但是之后命令行就不再打印数字了,看起来程序结束了,但还剩下48个数字。
PS:如果没有“sleep”方法,只打印数字,那么52个数字都可以打印。
为什么程序关闭?
解决方案
推荐阅读
- php - PHP会话不保存页面刷新或转到另一个页面后
- laravel - Laravel Delete 不使用 API 路由
- java - 从 Spring Security 过滤器访问 Spring Security 注释
- junit - 为什么一个对象被嘲笑,而另一个不是?
- javascript - Firestore 中的 .update,正在替换所有数据
- dicom - 如何使用 DCMTK 命令区分来自两个不同制造商的 CT 图像?
- amazon-web-services - 通过 Docker Remote API 验证 ECR
- python - 为什么 AMD Ryzen 2700x 比使用 Python 的 3 年笔记本电脑 Intel i7-6820HQ 慢 2 倍?
- javascript - 滚动上的打字效果
- java - 从 Firebase 读取数据时出现 NullPointerException