python - python列表的单独元素可以同时被单独的子进程访问吗?
问题描述
想象一下要执行并行计算。让我们想象一下,由于 RAM 要求,内存在子进程之间共享是必不可少的。让我们还假设没有共享内存被更改,而只是从中读取。我的问题是(就性能而言)如何引用共享内存是否重要。
作为示例考虑以下内容(假设我们在一个使用写时复制的系统上,这样a
不会复制到每个子进程)
from multiprocessing import Pool
a = [5, 8, 0.1, 154]
def function( i ):
return a[i]**2
with Pool(4) as p:
result = p.map( function, [0,1,2,3] )
print(result)
出去:[25, 64, 0.010000000000000002, 23716]
a
(index 0,1,2,3)的四个值是否可以同时访问?还是每个子进程都必须等到对列表的引用a
“可用”才能提取a[i]
?
我怀疑答案是可以同时使用单独的元素。但我想确定。
感谢您的任何输入:)
解决方案
推荐阅读
- python - 如何在python中表示因式分解中的素数倍数
- python - Lasso 回归模型与 GridSearchCV 有收敛警告
- c# - 左/右加入 oneToMany 关系 EF 核心
- flutter - 如何在 Text 小部件中放置 If 语句?- 颤振
- html - 如何使自定义文本ID出现在Leafletjs中的标记中心
- javascript - 尝试将来自不同 html 页面的信息保存到一个数组中,然后将它们显示在另一个 html 页面中
- javascript - 如何让文字最多显示五行,并通过CSS或jquery完成折叠效果?
- apache-spark - [解决] spark上下文已经停止,驱动正在重启。您的笔记本将自动重新附加
- tensorflow - 是否可以使用 tensorflow 在不同机器上精确复制训练?
- python - 在 python 中使用禁忌搜索算法创建邻域