【发布时间】:2010-05-05 01:58:44
【问题描述】:
我正在使用 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 二叉树,并可能节省大量循环迭代。
谢谢-
乔纳森
【问题讨论】:
标签: python parallel-processing