大整数的并行算法

时间:2014-04-17 15:41:42

标签: math parallel-processing

是否有任何软件工具可以并行执行非常大的数字运算?我的意思是并行是我想在我的计算机上使用所有可用的核心。

这些限制对我来说是敞开的。我不介意尝试任何语言或技术。

请和谢谢。

2 个答案:

答案 0 :(得分:1)

您似乎要么划分非常大的数字,要么使用次优算法。将事物并行化到固定数量的核心只会调整常量,但不会影响操作的渐近行为。如果您正在谈论单个部门的工作时间,渐近行为是最重要的。所以我建议你首先确保你的渐近复杂度尽可能好,然后然后开始寻找改进常量的方法,也许是通过并行化。

Wikipedia建议巴雷特师,GMP has a variant of that。我不确定你到目前为止所尝试的是否达到了类似的水平,但除非你确定是这样,否则我会尝试GMP。

有关最近的研究,另请参阅Parallel Modular Multiplication on Multi-core Processors。但是,哈文自己也没读过。

答案 1 :(得分:0)

我所知道的唯一努力是名为CUMP的CUDA库。但是,该库仅提供加法,减法和乘法的支持。无论如何,您可以使用乘法在GPU上执行除法,并检查结果的质量是否足以满足您的特定问题。