【发布时间】:2014-10-06 01:41:21
【问题描述】:
我正在使用这样的算法对小数数组进行一些计算:
fkn = Decimal('0')
for bits in itertools.combinations(decimals_array, elements_count):
kxn = reduce(operator.mul, bits, Decimal('1'))
fkn += kxn
我使用的是 Python 3.4 x64。 小数的精度>300(这是必须的)。 len(decimals_array) 大部分时间超过 40。 elements_count 大部分时间是 len(decimals_array)/2。
计算需要很长时间。 我想让它们成为多进程,所以首先我想制作一个包含所有组合的数组并将这个数组的一部分发送到许多进程 - 但是在制作这样的数组时我很快就会得到 MemoryError 异常。
现在我正在寻找更好的方法来使这段代码多进程。
在多核上运行此算法的好方法是什么?
或者也许有更好(更快)的方法来进行此类计算?
提前感谢您的一些想法。
【问题讨论】:
标签: python decimal multiprocessing combinations itertools