关于梅森素数的一个问题
目前,很多人通过prime95来“分布式”寻找梅森素数。但是我有一个想法,不知道能否实现?在N台计算机上判断同一个梅森素数,例如判断$2^{1257787}-1$,我们能不能在每台计算机上都运行一个程序,这个程序都是计算$2^{1257787}-1$的,综合这N台计算机,把判断$2^{1257787}-1$的时间缩短? 这取决于算法的设计,
并非所有的算法都适合并行运算的。 我知道,并非一定可以多线程运行,但是这个难道真的一点办法都没有? 梅森素数的判定方法是Lucas-Lehmer算法,
它无法将任务进行拆分分配。
虽然里面的大数乘法等可以拆分成多线程,
但线程间需要通讯和同步问题(如果在不同机器上运行,需要的通讯的数据量更大),
需要一些额外的代价。
这样就存在是否划算等问题了。 :)
在linux系统下
如果有强悍的网络链接
(10G速度)
倒是可以考虑16台:lol 4盒志强一起联网
并行计算一个乘法 我感觉:多核>多CPU>多PC
在核数总数目一定的前提下。 关键是超过4个核的U
比如8个核的
绝对比2个4核的贵
而且,似乎已经不是X86架构的吧
多U的机器也类似
4U的机器已经是我们能买到的最好的了
8U的一定比2个4U的贵
比如Sun的8核8线程U,你安16个
再安128个4G内存
恐怕计算速度惊人了
但我想么1000万,你别想装上
而1000万弄个 1G纯光网的
1000台的4核机器网络
绝对是后者强悍 单靠提高计算机速度和数量也很难完成梅森素数的搜寻工作,耗时耗力,结果不很理想。要想短时间内找到更多的梅森素数必须改变思路,优化寻找的方法,重新建立模型。
页:
[1]