24小时热门版块排行榜    

查看: 1839  |  回复: 6

freshman8185

金虫 (正式写手)

[交流] 【求助】CASTEP用几个核去算比较好? 已有5人参与

一般CASTEP用几个核去算比较好?我发现好像并不是用的核越多越好啊,近来用16个核去算个东西,发现用2个核去算速度好像也差不多啊。。。这是这么回事呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

slz0811

木虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zzy870720z(金币+1): 鼓励交流 2011-04-08 14:22:26
我用的8个核,这和体系大小有关系。
逢山开路,遇水搭桥。
2楼2011-04-08 10:48:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

liancsh

铜虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zzy870720z(金币+1): 鼓励交流 2011-04-08 14:22:40
一般情况就是4个或8个。用的cpu核数太多的话是会影响计算效率的,因为每一步的运算都需要核之间进行数据交流,并汇总到一个核里,然后根据收敛情况再把任务分到你所选的各个核上。当你所选的核较少时,核之间交流数据当然更快些了!
3楼2011-04-08 10:58:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

freshman8185

金虫 (正式写手)

引用回帖:
Originally posted by liancsh at 2011-04-08 10:58:53:
一般情况就是4个或8个。用的cpu核数太多的话是会影响计算效率的,因为每一步的运算都需要核之间进行数据交流,并汇总到一个核里,然后根据收敛情况再把任务分到你所选的各个核上。当你所选的核较少时,核之间交流 ...

好的,谢谢您哈
4楼2011-04-08 11:41:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

souledge

专家顾问 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
zzy870720z(金币+2): 谢谢指点 2011-04-09 00:13:12
做个简单的数学模型。
对于一个计算,其计算时间取决于体系大小,设定体系大小参数为S,则单核计算时间为T(S),不用说,T(S)一定是S的增函数。如果完美实现多核并行,并且核心数为n,那计算时间为:
T(S)/n,所以,T(S)是n的减函数。
但是,核与核之间需要通信,以确定其他核所进行的内容,就好像两个火车售票点不能卖同一个时间同一个车次同一个车厢同一个座位的票,这就需要通信时间,通信的复杂度决定于核的数量,而通信的内容多少则取决于计算体系大小,于是对于一个核,通信的时间可以是:
t(S,n),显而易见,t(S,n)为S和n的增函数。
那么,此时的计算时间就是:
T(S)/n + t(S,n)
由于第一项为n的减函数,第二项为n的增函数,所以必然有个临界点,超过后不但不能提升性能,反而降低计算效率。
一般来说,对于大体系的S,n的临界点很高,而对于小体系的S,n的临界点很低。
具体的计算开销计算非常复杂,CASTEP官方也只有一些核心与体系的计算时间测试数据而已~
思想重于技巧,内涵重于表象
5楼2011-04-08 16:13:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

freshman8185

金虫 (正式写手)

引用回帖:
Originally posted by souledge at 2011-04-08 16:13:53:
做个简单的数学模型。
对于一个计算,其计算时间取决于体系大小,设定体系大小参数为S,则单核计算时间为T(S),不用说,T(S)一定是S的增函数。如果完美实现多核并行,并且核心数为n,那计算时间为:
T(S)/n,所 ...

好的,谢谢哈,辛苦了
6楼2011-04-08 22:17:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqfd2009

铜虫 (初入文坛)

引用回帖:
449687楼: Originally posted by slz0811 at 2011-04-08 10:48:39
我用的8个核,这和体系大小有关系。

受教!
7楼2012-12-27 09:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 freshman8185 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见