在服务器中提交lammps计算时,用多少个核计算,才会使得自己和别人的运算会更快?是不是提交核数越多越快?如何提高运算速度(pppm算法)?

发布时间 2023-05-08 14:01:06作者: 一棵开花的树sysu

(摘自以下内容)

下边我们做几组测试,并对比计算速度:(采用同一个模型,所含原子数:19144(算挺得多了)

4个核——未超负荷运行100%情况下——1天能跑0.488 ns=488 ps

26个核——超负荷10个核运行——1天能跑0.023 ns= 23 ps

56个核——超负荷40个核运行——1天能跑0.018 ns= 18 ps

126个核——超负荷100个核运行——1天能跑0.009 ns= 9 ps

 

由此可见,未超负荷运行情况下,计算速度是超负荷10个核情况的21倍(488/23),是超负荷100个核情况的54.2倍(488/9)。

一般情况下,大家可能会超负荷10-40个核左右,但是这时候已经使得自己核大家的计算都已经降低了20倍以上,本来1天算完,现在要20天以上

因此,提交计算前要top看剩余核数,千万不要超负荷运行,自己提交计算,要预留空间给其他小伙伴。一起快才是真的快,一起慢也是真的蜗牛爬。

建议:
对于node01和node02,总核数只有40个核,课题组如果有8个人,建议每人用5-8个核在该服务器,未超负荷情况下(不一定要用满)运行速度会很快的。远比每人10-20个核导致超负荷要快十几倍以上。

对于node03,总核数为100左右,若4个人在算,每人用20-25个核,这样会比超负荷的要快很多倍。

所以,不是用核越多越快,有时,用核少反而越快,而且快的不是一点点,是十几倍的快

 

 

1..在提交计算之前,打开putty,输入命令”top“,即可查看当前服务器的运算情况。

先看CPU使用情况,可以计算还剩余多少空间可以使用。如,当前显示cpu-60.7%,若总核数为40,经过计算还剩余16个核可用。

同时,还可以看当前的user是谁,以及大概推测各自所用核数为多少。

 

 2.自己提交计算,应该用多少个核来计算比较适合呢?——自己提交计算,要预留一定的计算空间给其他伙伴,切不可全部占满。

通过top可以推测还剩16个核的空间可用,建议结合课题组的人数来使用。比如说,课题组有4个人要计算,服务器node01的总核数为40,人均10个核。现在还剩16个核的空间,但是仅有两个人在计算,那么要考虑到课题组另一个同门后边可能也提交计算。
因此,建议自己用8个核计算就比较适合,预留8个核给另一个伙伴。

切不可一个人把16个核都用完,这样其他人就没有空间用了。

 

3.提问:如果服务器总核数仅为40个核,当前还剩下16个核的空间(已用24个核),如果我提交超过16个核(如26,126,1000个核),计算会更快吗?——答案:会从飞机飞行速度变为蜗牛爬行,不仅仅是自己的速度,还有小伙伴的速度也跟着变化。

**注意:在CPU运行占比低于100%情况下,提交核数越多计算越快。而当高于100%,提交核数越多所有计算都越慢。就像百米冲刺赛道,假设有40个赛道,如果有40个运动员以内跑,速度都是最快的;如果是50个运动员,速度就会降低(而且是大大降低);如果是1000个运动员,那就会变成蜗牛爬行。

 

下边我们做几组测试,并对比计算速度:(采用同一个模型,所含原子数:19144(算挺得多了))

4个核——未超负荷运行100%情况下——1天能跑0.488 ns=488 ps

26个核——超负荷10个核运行——1天能跑0.023 ns= 23 ps

56个核——超负荷40个核运行——1天能跑0.018 ns= 18 ps

126个核——超负荷100个核运行——1天能跑0.009 ns= 9 ps

由此可见,未超负荷运行情况下,计算速度是超负荷10个核情况的21倍(488/23),是超负荷100个核情况的54.2倍(488/9)。

一般情况下,大家可能会超负荷10-40个核左右,但是这时候已经使得自己核大家的计算都已经降低了20倍以上,本来一天算完,现在要20天以上。

因此,提交计算前要top看剩余核数,千万不要超负荷运行,自己提交计算,要预留空间给其他小伙伴。一起快才是真的快,一起慢也是真的蜗牛爬。

建议:
对于node01和node02,总核数只有40个核,课题组如果有8个人,建议每人用5-8个核在该服务器,未超负荷情况下(不一定要用满)运行速度会很快的。远比每人10-20个核导致超负荷要快十几倍以上。

对于node03,总核数为100左右,若4个人在算,每人用20-25个核,这样会比超负荷的要快很多倍。

所以,不是用核越多越快,有时,用核少反而越快,而且快的不是一点点,是十几倍的快

 

a.使用26个核,计算总核数为24+26=50核,超负荷10个核。

 a.使用56个核,计算总核数为24+56=80核,超负荷40个核。

 

 c.使用26个核,计算总核数为24+126=150核,超负荷110个核。

 

 d.仅仅使用4个核,服务器未超负荷。(因为node01已经被别人用满了,这里切换到node03来算)

 

4.另如何提高计算速度 ?

建议计算长程经典作用力时候,采用该算法pppm,写法:kspace_style pppm 1.0e-4。该算法比ewald的要快很多倍(5倍以上,测试过),精度选择1.0e-4即可(自己选择)。结果差别不大。