【发布时间】:2014-03-05 02:37:18
【问题描述】:
假设我有一个看起来像的字典理解
grid = {z: g for (z,g) in grid.iteritems() if abs(next(g)) < 2}
并行化此操作的最 Pythonic 方式是什么?默认情况下,python 实现会并行化吗?我是否必须求助于使用诸如多处理模块之类的功能而不是理解?
【问题讨论】:
标签: python concurrency parallel-processing
假设我有一个看起来像的字典理解
grid = {z: g for (z,g) in grid.iteritems() if abs(next(g)) < 2}
并行化此操作的最 Pythonic 方式是什么?默认情况下,python 实现会并行化吗?我是否必须求助于使用诸如多处理模块之类的功能而不是理解?
【问题讨论】:
标签: python concurrency parallel-processing
我会使用 multiprocessing.Pool,
python3.3中的例子,一个平方数最大为10000的字典:
>>> import multiprocessing
>>> def square(num):
... return num**2
...
>>> with multiprocessing.Pool(processes=multiprocessing.cpu_count()) as executor:
... print({num:sqr for num, sqr in zip(range(1,10001), executor.map(square, range(1,10001)))})
【讨论】: