有没有一个简单的基于进程的python平行映射?
我正在寻找一个简单的基于进程的python并行映射,也就是一个函数
parmap(function,[data])
这将运行在不同的进程上的[数据]的每个元素上的函数(以及不同的核心,但AFAIK,在python中运行不同核心的唯一方法是启动多个解释器),并返回一个结果列表。
有这样的事情吗? 我想要简单的东西,所以一个简单的模块会很好。 当然,如果不存在这样的事情,我会去定一个大的图书馆: – /
我好像你需要的是multiprocessing.Pool()中的map方法 :
map(func,iterable [,chunksize])
A parallel equivalent of the map() built-in function (it supports only one iterable argument though). It blocks till the result is ready. This method chops the iterable into a number of chunks which it submits to the process pool as separate tasks. The (approximate) size of these chunks can be specified by setting chunksize to a positive integ
例如,如果你想映射这个函数:
def f(x): return x**2
范围(10),你可以使用内置的map()函数:
map(f, range(10))
或使用multiprocessing.Poll()对象的方法map():
import multiprocessing pool = multiprocessing.Pool() print pool.map(f, range(10))