24小时热门版块排行榜    

CyRhmU.jpeg
查看: 4019  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

lbh_xt

新虫 (小有名气)

[求助] LAMMPS并行计算的问题(cpu——time关系)

刚买了个服务器,6核4线程的,安装好并行版lammps后运行如下:
mpirun -np 1 ./lmp mpirun -np 2 ./lmp mpirun -np 3 ./lmp ...
我们进行了测试了time  —— cpu的数目关系,如上传图片


(1)怎么发现24个cpu全用上,计算所用的时间和2个cpu 的一样,这是什么原因啊。
(2)随着cpu从1到24变化,时间time会出现波动,一会大一会小的。测试结果是随机的还是差不多都一样呢?请问正常的情况应该是什么样子呢?
(3)有朋友说是因为体系大小的原因,请问一下用过lammps并行版的牛人们,你们是怎么测试和分配的呢?
(4)有没有好的软件专门进行并行测试的?(我感觉是不是因为计算机并行没有装好)

cpu-time.jpg
回复此楼
安静
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yaozhq

金虫 (小有名气)

引用回帖:
12楼: Originally posted by 风间的记忆 at 2012-11-21 15:54:24
凡事都有不一定
我指的大多数 普遍的情况
但所谓这时候插入一个超线程的计算指令
和我所说的不相干
你那个理论上讲是对的
但前提是你哪里知道何时是CPU空闲时间
从而带来的内存数据是否要重新从硬盘读写等等 ...

我觉得应该以实际测试为准  
如果说2002年推出的时候 该技术只是一种尝试 2012年的今天 intel 应该已经把其做的更加成熟了 加之软件的支持优化 包括编译器的针对性优化
正是因为不确定性因为 才会使得cpu计算单元总是不能真正跑满  总不可能把所有数据放进缓存吧 从内存读数据对于cpu来说也是慢的了 总要闲置的  对于不是负责的跳转执行 可以很容易的知道在排队的指令里哪些是要读数据的 读的时候就让内核去跑一下另一个排队的进程指令就好了
对于超算中心那种规模可能会主动关闭  而小的单机环境应该不会那么绝对
15楼2012-11-24 14:22:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

043114076

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
jiaoyixiong: 金币+2, 鼓励交流 2012-11-20 09:53:31
lbh_xt: 金币+2, ★★★很有帮助, 谢谢高手指点哈 2012-11-21 13:49:03
对于科学计算来说多线程用不着,要关闭掉。
另外你的时间单位是什么?
2楼2012-11-20 08:55:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lbh_xt

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 043114076 at 2012-11-20 08:55:31
对于科学计算来说多线程用不着,要关闭掉。
另外你的时间单位是什么?

单位是秒,我只是写了个小程序用并行版的测试一下。

我不是很懂这些,请问多线程不是也有那么多cpu吗,我的同学的服务器也是这个样子的,如果不用多线程的话,那么就只能有六个核算了嘛?
安静
3楼2012-11-20 09:41:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiaoyixiong

荣誉版主 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
chaizhm: 金币+3, 谢谢~ 2012-11-20 22:00:26
lbh_xt: 金币+3, ★★★很有帮助, 谢谢高手指点 2012-11-21 13:46:56
写个小程序就想比较计算速度,有点儿不太合适吧。
如果你一个体系很小的体系,用太多的CPU,反而浪费很多时间在信息的传递上,
并行计算的优势是大体系分块算。
我也坐过类似的测试:
4楼2012-11-20 09:57:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见