计算化学公社

标题: 高斯运行时,%cpu使用率太高 [打印本页]

作者
Author:
liu_tiao    时间: 2015-4-24 15:38
标题: 高斯运行时,%cpu使用率太高
     请教一下各位老师和同学,我计算的输入文件文件开头为:%nproc=30;%mem=20000MB;%chk=aaa-test.chk ;#p opt freq b3lyp/gen iop(5/13=1) pseudo=read scf=conver=6 int=ultrafine test;top命令后,可以看到cpu使用率2000%左右,但是mem使用率却一直在1%左右。改变核的数目后,依然如此。  程序在运行test文件时,都是normal 正常结束的。

作者
Author:
sobereva    时间: 2015-4-24 17:26
这属于极为正常的情况。内存没必要占满,因为本来就不需要占满。

另:freq计算时不要写scf=conver=6。test是多余的。5/13=1更是绝对不能写!

作者
Author:
liu_tiao    时间: 2015-4-24 17:42
首先,谢谢老师您。老师我改成了这样#p opt freq b3lyp/gen iop pseudo=read int=ultrafine 。我直接在服务器上面vi修改这个输入文件,然后在g09 aaa-test.com运行,这样可以吗?我们服务器有4个cpu,但是装了g09 c01 em64t系统,只能使用一个cpu,不知道怎么修改才能开启并行设置呢。在%cpu如此高的情况下继续进行计算,不知道对服务器会不会造成物理损害呢。
作者
Author:
sobereva    时间: 2015-4-24 20:25
int=ultrafine此时没必要。iop关键词是多余的。
如果你的机子是四路,并行就是靠%nproc来设置几核并行的,具体用哪几个CPU是不做区分的,4个CPU的所有核被等同视之。
不会对机子有损害。
作者
Author:
liu_tiao    时间: 2015-4-24 21:01
谢谢老师您了。我们服务器的硬件配置为cpu4个,E7—4820/2.0G;内存为8个,8G/DDR3-1333/ER。输入文件是%nproc=20,%mem=10000MB,%chk=aaa-test.chk;#p opt freq b3lyp/gen pseudo=read。提交任务后,62021   lt     20   0  12.432g   1.536g   6272 R  1995  2.4  351:07.04 l502.exe 。您也说了,cpu虽然使用率这么高,是很正常的,并且对机子也不会造成物理损害。老师假如有时间的话,不知道可不可以告诉我为什么%cpu如此高,有没有什么办法来解决呢。还是根本无需解决,及时这样也不会产生任何影响。
作者
Author:
sobereva    时间: 2015-4-24 23:03
这本来就是正常的。如果你的机子就一个核,占满了会显示100%。但你有30核,给高斯分了20核,显示2000%说明平均有20个核都在算着。
造成物理损害只有CPU长期过热的时候才会发生,但实际中不必担心,散热系统肯定压得住,而且温度真到了那么高的时候CPU就自动降频来降温了,
作者
Author:
liu_tiao    时间: 2015-4-25 13:29
谢谢老师您。在选择使用多少个核进行计算时,是不是最好使用单个cpu核数的倍数的核来进行计算,也就是8的倍数的核来进行呢;还是可以任性选择呢。我们服务器只有一台,在直接使用g09 aaa.com &命令提交多个任务时,这些任务是一起算的呢(这样的话,所使用的核和内存总的加和是不是不能超过服务器的硬件配置),还是一个算好之后再接着算下一个呢(这样每个任务的核和内存就可以设置不一样,并且相互没有影响)。在只进行一个高斯任务时(并且没有其他的软件的计算任务)时,是不是使用最大的物理核心32个,所使用的计算时间最短,计算效率最高呢。
作者
Author:
虎王    时间: 2015-4-25 19:19
sobereva 发表于 2015-4-24 20:25
int=ultrafine此时没必要。iop关键词是多余的。
如果你的机子是四路,并行就是靠%nproc来设置几核并行的, ...

高斯好像用三十个核并行的效率还不如十六核的。
作者
Author:
虎王    时间: 2015-4-25 19:20
sobereva 发表于 2015-4-24 23:03
这本来就是正常的。如果你的机子就一个核,占满了会显示100%。但你有30核,给高斯分了20核,显示2000%说明 ...

以前有人跟我说他试过,三十二个核并行的速度好像不如十六个核的
作者
Author:
sobereva    时间: 2015-4-25 21:07
虎王 发表于 2015-4-25 19:20
以前有人跟我说他试过,三十二个核并行的速度好像不如十六个核的

看具体计算。本来超过16核后性能提升就很小了,有的计算还很吃资源,分配的核多了造成资源竞争反倒拖慢速度。
作者
Author:
sobereva    时间: 2015-4-25 21:13
liu_tiao 发表于 2015-4-25 13:29
谢谢老师您。在选择使用多少个核进行计算时,是不是最好使用单个cpu核数的倍数的核来进行计算,也就是8的倍 ...

并不需要倍数的,数目随意。
这么提交,如果提交N个,N个高斯任务会一起算。用的核数总和可以超过实际值,但这样会拖慢速度,不建议这么做。内存是总量不能超过空余物理内存,否则会报错。

由于你的机子核数很多,而单个高斯任务在较高核数下并行效率很低,所以可以同时提交两个16核,或3个10核之类的。这比起每个任务都用32核并且跑完一个再跑一个总耗时应该能低不少。
作者
Author:
blueyangliu    时间: 2015-4-26 10:42
sobereva 发表于 2015-4-25 21:13
并不需要倍数的,数目随意。
这么提交,如果提交N个,N个高斯任务会一起算。用的核数总和可以超过实际值 ...

Sob老师,4核i7cpu开启超线程对于高斯计算是有效果的吧,我测试是要快一些。但也有说,超线程不要开,效率低。
作者
Author:
sobereva    时间: 2015-4-26 18:31
blueyangliu 发表于 2015-4-26 10:42
Sob老师,4核i7cpu开启超线程对于高斯计算是有效果的吧,我测试是要快一些。但也有说,超线程不要开,效 ...


网上到处是对HT技术的谬传,说什么要关闭HT,也不知道是谁最先造谣的,每次看到有人鼓吹要关闭HT我就十分愤慨!正确的说法是:

Hyper-Threading (HT,超线程):开启此技术后,若物理核心有N个,则操作系统识别出2N个逻辑核心。跑多任务或并行计算时可压榨CPU空闲处理能力,获得最多平均约百分之十几的性能提升。
让程序用2N个核并行计算时亦有可能由于资源竞争亦可能降低效率。2N比N核并行时是否性能有提升需要实测,但即便有提升亦不多。保险起见可以只用N核并行,剩余计算能力处理后台任务,绝不会比关闭HT后性能更糟。
故强烈不建议在BIOS里关闭HT!

(, 下载次数 Times of downloads: 39)





欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3