|
发表于 2008-9-25 15:42:55
|
显示全部楼层
我最近看了不少并行计算的东西,分享一下经验,
大家在上面说的都属于桌面上常见的多核心处理器,
在并行机里面的smp是指每个核心都可以对等的使用内存,就是说4个核心看到的内存是一样的,看到的内容以及读取时间是一样的,但是在一个时间点只能有一个在访问内存,4个核心每次有一个访问内存以后就会update整个cpu芯片中cache中内容,(太多的内容就不写了,越撤越多。。。。。。)
amd的4核心处理器是满足这个要求的,intel的显然是不满足的,并且核间通信时的overhead肯定是很大的!!!!!!
如果要发挥这种cpu在计算上的优势需要使用openmp技术,目前gcc的4.2以后已经开始支持openmp了,但是不会把穿行的源代码自动转化为有并行能力的,所以多数时候是在用一个核心在哪里跑,
目前的多数测试也没有多核心的相关测试,所有大家不要太关注测试结果,并且icc编译的和gcc编译的也是不一样的-O2 -O3也是不一样的,icc对自己的cpu可是挺照顾的,这一点在google一下可是不少的东西,
总结:
需要多核心能力的,比如对并行计算有兴趣的,或者是需要大规模编译的,想在编译的时候多打开几个线程的,我建议买amd的4核心;一般人我觉得一个双核的就足够足够了,
记住:
多核需要系统软件的支持,目前没有那个软件是支持好的,并且很多东西就是不能并行的,比如你生成一个菲波纳奇数就不能并行,
有多核心需要就买amd的4核,没有多核心需要的就双核core的,
多数时候桌面用户需要的还是单核心能力,
不信的话,linux用户自己top以后按一下1,freebsd用户自己试试systat 1。 |
|