在 python 中使用多处理的简单并行性

Trivial parallelism using multiprocessing in python

我想在 python 中使用最简单的并行示例,但我无法从 multiprocessing 文档中理解如何执行此操作。

下面是一些示例玩具代码,展示了我想做的事情。

import igraph

n = 10
g = igraph.Graph()
g.add_vertices(n)
h= igraph.Graph()
h.add_vertices(n)
[add some nodes and edges to g and h]
print "h omega is ", h.omega()
print "g alpha is", g.alpha()

我希望最后两行并行到 运行,因为我有多个内核,它们需要很长时间才能到 运行。每个都简单地输出一个整数,我不关心我得到结果的顺序。

有没有简单的方法可以做到这一点python?

假设 omega() 和 alpha() 是不会改变环境状态的纯函数,您可以为每个调用启动两个单独的进程。这些进程将 运行 并行。

p1=multiprocessing.Process(target=lambda x: print x.omega(), args=(h,))
p2=multiprocessing.Process(target=lambda y: print y.alpha(), args=(g,))
p1.start()
p2.start()