计算化学公社

 找回密码 Forget password
 注册 Register
Views: 32511|回复 Reply: 20
打印 Print 上一主题 Last thread 下一主题 Next thread

[Gaussian/gview] Gaussian 并行效率新测

[复制链接 Copy URL]

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

本帖最后由 liyuanhe211 于 2016-12-29 12:30 编辑

网络上有不少对Gaussian并行效率的测试,其测试基本都如下图示意。只用2核时(横坐标),会占用“4格”时间(纵坐标),而用4核时,可能只需2格时间。这种只运行一个任务,大量CPU空余的情况并不符合实际。实际若有空闲CPU,常会运行其他任务(如有排队系统)。

故合理的测试应如下进行:若在8核的CPU上测试,应对比同时运行4个2核任务;和一个8核任务运行4遍的时间。

本文将对两种测试方法进行对比

--------------------------------------------
测试
--------------------------------------------
P.S. 本次测试结果实在是有些颠覆我之前的概念,期待大家讨论。如果有人愿意在其他机器上测试就更好了。

测试案例都是同一个普通的含CHN有机分子,初始结构相同,B3LYP/6-31G(d) opt freq。机器分别是 20核40线程的E5-2680 v2 *2 和12核24线程的E5-2643 v2 *2,配每核4G内存。Hyperthread 启用。

--------------------------------------------

单任务并行效率测试(前人测试方式)

按照前人的测试方式重复,结果在趋势上类似,以2核作为基准的并行效率如下表/下图所示。

原始时间数据:

多次SCF(多个L502和L703)在写程序提取时间的时候已经自动平均过了。已检查各次SCF循环次数相同



并行效率






可见L502的结果与前人的单点能测试类似,大概到4核并行的时候效率是很高的,超过4核的提升就远不如前面显著了。
同时L502的并行效率是各线程中最低的。可见 L703,L1110 和 L1002的多核并行效率都很高,使得总时间的并行效率在8核以下还是很显著的,12~16核也还可以接受。

本测试中发现一个问题,CPU在只使用一个Core时,会比使用所有Core有更多的Turbo,如E5-2680在只运行单线程时会Turbo到3.6GHz,在运行全部Core时只会Turbo到3.1GHz,频率的检测也确认了这个推测。如果这一现象在其他机器上存在,很可能错误的低估并行效率。

--------------------------------------------

恒定CPU使用率多任务并行效率测试


--------------------------------------------


因为与测试无关的原因,基组从6-31G(d)换成了6-31+G(d,p),应基本不影响结果。
依据之前的测试结果,开启Hyperthread但不使用Hyperthread出来的线程是较好的运行策略:
《CPU(带HT) 一半线程 vs 100%使用 效率实测》
http://bbs.keinsci.com/forum.php?mod=viewthread&tid=2105&extra=

故CPU只使用50%(表观),即20核40线程的CPU,只运行总共20线程的任务。内存每核4G,所有任务平均分配。

原始时间数据:
除了对各进程平均,对并行的各相同任务间也做了平均

(单核运行的案例运行时间太长,没跑完就被我关掉了,以两核为基准)

并行效率:






可见结果与上面完全不同,可见与第一节的单任务测试相比,多核的并行效率上来了,这是表象;其实际原因可能是如前所述的,仅使用1、2个核时,Turbo频率较高,故这种接近实际的测试方式不存在常见的高估低核数效率的问题。


从总时间上来说,不同核数运行时并行效率都可以接受,与两核并行这个基准上下浮动不多。
根据测试结果,个人感觉在存在多个可运行任务时,使每个任务拥有 4~6 Core,同时运行多个任务使CPU满载(不含Hyperthread),可能是效率较高的方案。

期待讨论。










评分 Rate

参与人数
Participants 8
eV +41 收起 理由
Reason
Dawn_every + 1 233333
xxu若白 + 4
youyno + 5 好物!
hlmkh + 3 <font><font>Thank you</fo
卡开发发 + 3 剩下3分留给李大师吧^_^
chrischen1128 + 5 赞!
captain + 5 赞!
sobereva + 15 欢迎讨论

查看全部评分 View all ratings

39

帖子

0

威望

132

eV
积分
172

Level 3 能力者

21#
发表于 Post on 2015-12-24 08:04:22 | 只看该作者 Only view this author
很不错的测试,为更好使用胖节点提供依据。

164

帖子

0

威望

1501

eV
积分
1665

Level 5 (御坂)

Miss X

20#
发表于 Post on 2015-12-9 08:52:20 | 只看该作者 Only view this author
我们服务器是以节点来分配的,为了资源合理利用,只给使用12核
真诚相待,淡淡相处,方天久地长^^

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

19#
 楼主 Author| 发表于 Post on 2015-12-8 21:48:19 | 只看该作者 Only view this author
Aminus 发表于 2015-12-8 21:30
建议做如下测试:
1. 同一个节点上,对同一任务,计算分别为4,8,12,16,20,24核,然后看总的计算时间 ...

没懂为什么这样合理。
显然CPU的总占用率跟任务的最佳核数是相关的,故作这样的的正交优化显然不一定能得到最优解。

目前所有测试都是单台工作站的测试。以及有前人测试的结果表明硬盘写入不构成决速步。

24

帖子

0

威望

686

eV
积分
710

Level 4 (黑子)

18#
发表于 Post on 2015-12-8 21:30:45 | 只看该作者 Only view this author
建议做如下测试:
1. 同一个节点上,对同一任务,计算分别为4,8,12,16,20,24核,然后看总的计算时间,找出最优使用的核心数,
2. 如果以上最优核心数小于总核数的一半以上,分别再测试同一任务在最优核使用情况下,同时提交两个三个任务,再看

楼主没有提到的参数还有,临时文件,输出文件log,写在哪里,是在计算节点,还是其他节点(如存贮节点),这些也是影响因素。

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

17#
 楼主 Author| 发表于 Post on 2015-11-25 23:41:39 | 只看该作者 Only view this author
youyno 发表于 2015-11-25 23:01
有没有测试超线程开启情况下的效率?

已经开了

216

帖子

3

威望

4470

eV
积分
4746

Level 6 (一方通行)

16#
发表于 Post on 2015-11-25 23:01:32 | 只看该作者 Only view this author
有没有测试超线程开启情况下的效率?
Monte Carlo

1552

帖子

2

威望

6241

eV
积分
7833

Level 6 (一方通行)

给dalao们倒茶

15#
发表于 Post on 2015-11-25 19:12:57 | 只看该作者 Only view this author
liyuanhe211 发表于 2015-11-25 13:11
呃~~忘记了~~好像有一个自变量是基函数个数,可以查一下。
以及想怎么测?用2个核不就能测了

恩,谢谢Li老师,谷歌一下看一看能不能找到。
淡泊以明志,宁静以致远。

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

14#
 楼主 Author| 发表于 Post on 2015-11-25 13:11:45 | 只看该作者 Only view this author
978142355 发表于 2015-11-25 12:27
其实我一直就想做这个测试,只不过只有1个4个核的机器,没法做。经验公式?Li老师在哪里看到的?

呃~~忘记了~~好像有一个自变量是基函数个数,可以查一下。
以及想怎么测?用2个核不就能测了

1552

帖子

2

威望

6241

eV
积分
7833

Level 6 (一方通行)

给dalao们倒茶

13#
发表于 Post on 2015-11-25 12:27:40 | 只看该作者 Only view this author
liyuanhe211 发表于 2015-11-25 11:04
可能对计算确实有影响,有一个理想值,我记得还有一个经验公式来算,给多少内存合适。不过这么做的假设是 ...

其实我一直就想做这个测试,只不过只有1个4个核的机器,没法做。经验公式?Li老师在哪里看到的?
淡泊以明志,宁静以致远。

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

12#
 楼主 Author| 发表于 Post on 2015-11-25 11:04:04 | 只看该作者 Only view this author
978142355 发表于 2015-11-25 08:25
对,我就是这个意思,比如算苯分子,内存给的极小和极大,算的时间都比合适地给要长。我想你如果都给力4 ...

可能对计算确实有影响,有一个理想值,我记得还有一个经验公式来算,给多少内存合适。不过这么做的假设是,绝对速度与内存有关,但使用不同核数且内存与核数成正比时,不同核数之间的相对速度基本不受影响。有时间也可以测试一下。

1552

帖子

2

威望

6241

eV
积分
7833

Level 6 (一方通行)

给dalao们倒茶

11#
发表于 Post on 2015-11-25 08:25:02 | 只看该作者 Only view this author
liyuanhe211 发表于 2015-11-25 03:09
呃,没懂。记得有人说内存和线程数成正比是比较合理的,即所有的内存平分给各核用。故而这样分配内存,不 ...

对,我就是这个意思,比如算苯分子,内存给的极小和极大,算的时间都比合适地给要长。我想你如果都给力4个G对于计算会不会有影响呢?
淡泊以明志,宁静以致远。

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

10#
 楼主 Author| 发表于 Post on 2015-11-25 03:09:18 | 只看该作者 Only view this author
978142355 发表于 2015-11-24 23:50
分子中原子个数似乎对%mem的不同,计算速度也不同。

呃,没懂。记得有人说内存和线程数成正比是比较合理的,即所有的内存平分给各核用。故而这样分配内存,不知道这个说法对不对。

3098

帖子

28

威望

1万

eV
积分
16892

Level 6 (一方通行)

9#
 楼主 Author| 发表于 Post on 2015-11-25 03:07:22 | 只看该作者 Only view this author
smutao 发表于 2015-11-24 22:38
从第二部分的测试来看
似乎任务很多的时候集中火力一个一个任务跑反而是效率最高的
这个也不难理解——因 ...

这个结论只对l703成立,如果观察其他几项,如总时间,似乎最高的还是较少的核数。另外根据检测,整个过程中CPU等待io都很低,所以硬盘读写可能不够成决速步。一些读写较多的任务比如post-HF可能确实会有你说的问题。

1552

帖子

2

威望

6241

eV
积分
7833

Level 6 (一方通行)

给dalao们倒茶

8#
发表于 Post on 2015-11-24 23:50:56 | 只看该作者 Only view this author
liyuanhe211 发表于 2015-11-24 20:21
除列出的以外,每核4G,上面写了。

分子中原子个数似乎对%mem的不同,计算速度也不同。
淡泊以明志,宁静以致远。

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 15:37 , Processed in 0.246025 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list