gpt4 book ai didi

python - 并行python中的共享值

转载 作者:太空狗 更新时间:2023-10-30 01:30:35 25 4
gpt4 key购买 nike

我正在使用 ParallelPython 开发性能关键型脚本。我想在系统上运行的 8 个进程之间共享一个值。请原谅这个微不足道的例子,但这说明了我的问题。

def findMin(listOfElements):
for el in listOfElements:
if el < min:
min = el

import pp
min = 0
myList = range(100000)
job_server = pp.Server()
f1 = job_server.submit(findMin, myList[0:25000])
f2 = job_server.submit(findMin, myList[25000:50000])
f3 = job_server.submit(findMin, myList[50000:75000])
f4 = job_server.submit(findMin, myList[75000:100000])

pp 文档似乎没有描述跨进程共享数据的方法。可能吗?

如果是这样,是否有标准的锁定机制(如在线程模块中)来确认一次只完成一个更新?

l = Lock()
if(el < min):
l.acquire
if(el < min):
min = el
l.release

我知道我可以保留一个本地最小值并在返回后比较主线程中的 4,但是通过共享该值我可以更好地修剪我的 BFS 二叉树并可能节省大量循环迭代。

谢谢-

乔纳森

最佳答案

实际上,http://www.parallelpython.com/content/view/17/31/#CALLBACK 有一个例子他们只是使用线程模块中的锁。

正如 JudoWill 指出的那样,请务必尝试在作业中同步全局最小值的频率。如果您每次都这样做,您最终可能会接近序列化整个计算。

关于python - 并行python中的共享值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com