cal*_*pto 36 python parallel-processing
什么是在python 2.7中进行并行处理的简单代码?我在网上找到的所有例子都很复杂,包括不必要的代码.
我怎么做一个简单的强力整数分解程序,我可以在每个核心(4)上计算1个整数?我的真实程序可能只需要2个核心,并且需要共享信息.
我知道parallel-python和其他库存在,但我想将库的数量保持在最低限度,因此我想使用thread和/或multiprocessing库,因为它们带有python
Jon*_*rsi 31
在python中开始并行处理的一个简单方法就是多处理中的池映射 - 它类似于通常的python映射,但是单个函数调用分布在不同数量的进程上.
保理就是一个很好的例子 - 你可以强力检查所有可用任务的所有部门:
from multiprocessing import Pool
import numpy
numToFactor = 976
def isFactor(x):
result = None
div = (numToFactor / x)
if div*x == numToFactor:
result = (x,div)
return result
if __name__ == '__main__':
pool = Pool(processes=4)
possibleFactors = range(1,int(numpy.floor(numpy.sqrt(numToFactor)))+1)
print 'Checking ', possibleFactors
result = pool.map(isFactor, possibleFactors)
cleaned = [x for x in result if not x is None]
print 'Factors are', cleaned
Run Code Online (Sandbox Code Playgroud)
这给了我
Checking [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]
Factors are [(1, 976), (2, 488), (4, 244), (8, 122), (16, 61)]
Run Code Online (Sandbox Code Playgroud)