python协程是否可以解决python多进程队列等待的时间消耗

相关:

强化学习:手动实现一个并行环境采样的代码 —— SynVectorEnv



之前写了一个python环境下的多进程仿真环境采样的代码库,后来突发奇想,想到是否可以使用python的协程来解决python多进程同步通信的等待时间消耗,后来写了个Demo的代码,发现没有啥用,准确来说确实有提高,性能提高的又1%到3%的水平,但是考虑到性能测评时的一些不确定性,因此这个结果就相当于说明啥用都没有。

根据前文的分析(强化学习:手动实现一个并行环境采样的代码 —— SynVectorEnv),这个多进程采样的library,性能最大的瓶颈就在queue队列的同步等待上,因为单step的sample时间极短,和等待queue同步所花费的时间相比只大了近十倍左右,由此导致这个多进程采样的library的实际性能总是上不来,当然网上的GitHub中有清华大学团队和其他的一切高水平团队搞出了同样功能的C++版本的library作为python的扩展库,但是这个代码的难度较大,从而难以进行定制化的开发,为此我就想到了是不是可以使用python的协程来解决这个问题,不过最终发现其实没啥用,虽然没有解决问题但是却引出了一个新的问题,那就是“python协程是否可以解决python多进程队列等待的时间消耗”。


问询ChatGPT后得到答案:

由于协程的优势在于减少 I/O 阻塞时间,并不能直接优化多进程队列的 IPC 性能。



使用ChatGPT:

image

image


posted on   Angry_Panda  阅读(4)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
历史上的今天:
2024-01-07 Jax计算框架的MPI通讯的扩展库 —— mpi4jax
2024-01-07 Jax计算框架的NamedSharding的reshape —— namedsharding-gives-a-way-to-express-shardings-with-names
2024-01-07 西方文明的发展过程中极其重要的一个族群——腓尼基人,具体的地理位置在哪
2023-01-07 项目的工作核心内容
2023-01-07 项目所需技术及问题
2019-01-07 [python]自问自答:python -m参数? ( python3.7 版本 )
2019-01-07 常用增强学习实验环境 II (ViZDoom, Roboschool, TensorFlow Agents, ELF, Coach等) (转载)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示