问题标签 [process-pool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - SharedMemory 不适用于 ProcessPoolExecutor
我有一个具有这种层次结构的程序:
我正在尝试从以下位置运行此代码main.py
:
并且takeInput
从中video_input.py
更改movement
共享内存变量的函数。以相同的方式takeInput
访问movement
共享内存变量printMovement
:
这两个函数都有一个while True
循环。
我正在尝试movement
按名称访问共享内存块,但它失败了。即使进程内部发生了变化,该printMovement
函数也不打印任何内容。movement
video_input.py
python - 父进程中断时如何完成子进程的工作?
我运行以下代码,我希望子进程在父进程终止时继续完成作业。
我需要子进程来完成每个提交的作业。父进程无关紧要。
但得到了这个例外:
谁能帮我吗?
提前致谢
python - 如何在同步代码的龙卷风中使用 Process Pool Executor?
我是龙卷风的新手,并且有一个 API 可以进行阻塞数据库调用。由于这个阻塞调用,如果多个请求同时出现,tornado 将无法为所有请求提供服务。
我查看了一下,发现可以使用两种方法来解决它:使代码异步和/或使用 Process Pool Executors。我在这里的假设是拥有多个进程池执行器就像在龙卷风上有多个进程来服务多个请求。我看到的每个关于实现 Process Pool Executor 的示例也使代码异步。
我暂时不能使代码异步,因为它需要更多的代码更改,所以我正在寻找使用 Process Pool Executors 的简单修复。
我目前拥有的
我试过的
我对这种方法的问题是,现在我得到的是一个future object
而不是实际的响应。如何在发回响应之前让Get
请求等待完成?self.executor
python - Multiprocessing ProcessPoolExecutor - 在 Windows 命令行中运行时出现 BrokenProcessPool 错误
我正在使用 executor.map 并将结果存储在“结果”中。
以下代码在 Jupiter notebook 上没有任何问题。但是,在 Windows 命令提示符下执行 python 脚本时它会崩溃。
rop_test.py
函数文件.py
错误
我尝试将它放在主命令中,添加等待,添加 [var for var in results]、list(results) 等,但无济于事。
注意我在 python 3.6
python - 使用 fbProphet 交叉验证的 Broken Process Pool 错误
我正在使用 facebook 的 Prophet 库进行预测,但在将其投入生产之前,我想使用包含的交叉验证包对其进行验证。我有一台配备 64GB RAM 和 Ryzen 9 5950X 的机器。我收到此错误:“BrokenProcessPool:进程池中的进程在未来运行或挂起时突然终止。” 经过数小时的计算。
不用说它令人沮丧,但是当我寻找它时,我找不到任何有同样问题的人。许多人在使用“concurrent.futures”库时遇到了这个错误,我认为这是内置在先知包中的。人们给出此错误的最常见原因是内存不足。但这对我来说不是这样。内存使用量从未超过 20GB(在限制范围内)。
我试过在另一台运行完全不同平台的机器上,它也有同样的错误。
这是我的代码:
这是我的df:
当我运行我的代码时,您可以看到它应该重新训练模型 405 次,并且每次都生成 24 小时的预测。
任何有关此问题的帮助将不胜感激!
亲切的问候
python - Python ProcessPoolExecutor 找不到在 if __name__ == '__main__' 之后定义的全局变量?
以下代码将报错 NameError: name 'b' is not defined
但是如果你将 b = 3 移动到 if 语句之前,如下所示,它会运行而不会出错,为什么?
顺便说一句,在函数中定义像 b 这样的全局变量的最佳实践是什么?
python - 一个类中的多处理并在另一个类中使用它的实例
我一直在使用 Python 的多处理模块。我想在一个类中创建多处理工作者,并将这个类的对象用作另一个类中的组合。下面是结构看起来与我的原始代码相同的虚拟代码。
一个.py
b.py
在这里,我尝试在另一个模块中使用 B 类,如下所示
检查.py
出现以下错误 Python multiprocessing RuntimeError: 尝试在当前进程完成其引导阶段之前启动一个新进程......
有人可以帮助我。感谢您阅读这个问题。
python - ProcessPoolExectur 和 Ctrl C
我在 Windows 10 上使用 ProcessPoolExecutor。Python 版本是 3.9.5。当我按 Ctrl+C 两次时,即使我设置了超时,程序也会无休止地挂起。
错误信息是:
python - 在完成所有任务之前关闭 ProcessPoolExecutor 的异步
我想将 ProcessPoolExecutor 与 asyncio 结合起来在 TestClass 中同时运行我的阻塞函数。每个任务都旨在长时间运行,因此我需要一个有效的关闭过程以在退出脚本后使事情顺利进行。我需要在哪里为 KeyboardInterrupt 添加错误处理以顺利关闭所有任务和进程?我搜索了很多相关的主题,但没有一个能解决我想要的问题。希望能得到一些帮助!提前致谢。
以下是在所有任务和进程完成之前按 ctrl + c 后的错误日志。
python - Python concurrent.futures.ProcessPoolExecutor:用于大量任务的大量 RAM
我正在使用 concurrent.futures.ProcessPoolExecutor 并行运行 python 代码。基本上我所做的是
这适用于少量n
但对于较大的 n 它会占用大量 RAM。我觉得存储期货集(或列表)正在占用 RAM。因此,我尝试不存储期货集并在 my_function 本身中实现我想要对结果执行的操作。喜欢
但仍然占用大量内存。
通过更多的挖掘,我发现了这个。我知道第一个 for 循环提交所有任务,但执行它们需要时间。所以那些提交但未执行的任务将存储在 RAM 中。
直觉上,我明白,不应该一次提交所有的任务,而是随着前面的任务完成逐步提交。我不想在循环中添加任何睡眠/延迟。有没有更好的方法来做到这一点。我真的不明白使用map
method 而不是submit
,chunksize
参数的作用以及如何决定分配给它的值。
有没有更好或优雅的方法来做到这一点?还是我完全错了?我以前用过 GNU 并行,它不会导致这么大的 RAM 问题。我想要一个只有 python 的解决方案。