282842712474 发表于 2009-2-13 23:15:30

关于梅森素数的一个问题

目前,很多人通过prime95来“分布式”寻找梅森素数。但是我有一个想法,不知道能否实现?

在N台计算机上判断同一个梅森素数,例如判断$2^{1257787}-1$,我们能不能在每台计算机上都运行一个程序,这个程序都是计算$2^{1257787}-1$的,综合这N台计算机,把判断$2^{1257787}-1$的时间缩短?

gxqcn 发表于 2009-2-14 09:14:22

这取决于算法的设计,
并非所有的算法都适合并行运算的。

282842712474 发表于 2009-2-14 09:26:44

我知道,并非一定可以多线程运行,但是这个难道真的一点办法都没有?

gxqcn 发表于 2009-2-14 09:35:46

梅森素数的判定方法是Lucas-Lehmer算法,
它无法将任务进行拆分分配。

虽然里面的大数乘法等可以拆分成多线程,
但线程间需要通讯和同步问题(如果在不同机器上运行,需要的通讯的数据量更大),
需要一些额外的代价。
这样就存在是否划算等问题了。

无心人 发表于 2009-2-14 09:55:20

:)

在linux系统下
如果有强悍的网络链接
(10G速度)
倒是可以考虑16台:lol 4盒志强一起联网
并行计算一个乘法

gxqcn 发表于 2009-2-14 10:01:50

我感觉:多核>多CPU>多PC
在核数总数目一定的前提下。

无心人 发表于 2009-2-14 10:39:10

关键是超过4个核的U
比如8个核的
绝对比2个4核的贵

而且,似乎已经不是X86架构的吧

多U的机器也类似
4U的机器已经是我们能买到的最好的了
8U的一定比2个4U的贵

比如Sun的8核8线程U,你安16个
再安128个4G内存

恐怕计算速度惊人了
但我想么1000万,你别想装上

而1000万弄个 1G纯光网的
1000台的4核机器网络

绝对是后者强悍

云梦 发表于 2011-5-29 11:08:37

单靠提高计算机速度和数量也很难完成梅森素数的搜寻工作,耗时耗力,结果不很理想。要想短时间内找到更多的梅森素数必须改变思路,优化寻找的方法,重新建立模型。
页: [1]
查看完整版本: 关于梅森素数的一个问题