python - 在基于 trio 的 Python 应用程序中生成进程并在进程之间进行通信
问题描述
对于 Python 库流体图像的实习,我们正在研究使用库trio编写具有客户端/服务器模型的 HPC 并行应用程序是否是一个好主意。
对于异步编程和 i/o,三重奏确实很棒!
然后,我想知道如何
- 生成进程(执行 CPU-GPU 受限工作的服务器)
- 在进程之间通信复杂的 Python 对象(可能包含大型 numpy 数组)。
我没有在其文档中找到使用 trio 执行此操作的推荐方法(即使echo 客户端/服务器教程是一个好的开始)。
在 Python 中生成进程并进行通信的一种明显方法是使用multiprocessing。
在 HPC 环境中,我认为一个好的解决方案是使用 MPI(http://mpi4py.readthedocs.io/en/stable/overview.html#dynamic-process-management)。作为参考,我还必须提到rpyc ( https://rpyc.readthedocs.io/en/latest/docs/zerodeploy.html#zerodeploy )。
我不知道是否可以将此类工具与 trio 一起使用,以及执行此操作的正确方法是什么。
一个有趣的相关问题
备注PEP 574
在我看来,PEP 574 (参见https://pypi.org/project/pickle5/)也可能是解决这个问题的好方法的一部分。
解决方案
推荐阅读
- twitter - Tweepy 机器人发推特 DM
- javascript - 如何在隐藏元素上停止 setinterval
- pandas - 按最多三列对 pandas 数据框中的示例进行排序
- hex - \x00@ 是什么意思?
- java - 从活动启动 Fragment 活动会导致 NullPointerException
- javascript - 制作用于将 URL 字符串转换为 JSON 的递归算法
- gitlab - 如何解决 GitLab 项目导出后管道损坏的问题?
- angular - 不完全禁用每个文件的严格模板
- r - 如何在 R 中操作数据框的因子水平?
- azure-active-directory - 如何使用 office365 使用 Azure AD 对 .net 核心 Web API 进行身份验证