计算化学公社

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

[Linux] 求助:感觉7950X计算效率较低该如何解决?

[复制链接 Copy URL]

68

帖子

0

威望

929

eV
积分
997

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
为了测试一下自己机器的CPU性能,把一个之前在学校超算节点上跑过的opt freq的任务在自己的机子上跑了一下,结果如下:
学校超算:双路Intel Xeon Gold 6142,Gaussian 16A.03_AVX2, opt用时3956.4s,freq用时 2198.7s
自己的机器:WSL2上跑的,7950X,Gaussian 16C.02_AVX2, opt用时5217.1s,freq用时3350s
从时间上看性能只有学校节点的70%左右,但我从CPU的跑分上看感觉7950X应该没这么差,在计算过程中CPU的使用率也没什么异常,频率也在5Ghz以上。
现在不知道是不是用的WSL的原因,但之前看别的帖子说WSL的性能损失在百分之十几左右,应该没这么夸张。请问这个计算效率低还可能有什么其他的原因吗?或者这个计算性能是正常的?谢谢!

186

帖子

1

威望

505

eV
积分
711

Level 4 (黑子)

2#
发表于 Post on 2023-11-16 20:11:48 | 只看该作者 Only view this author
多大的任务?多少核并行?
7950X的主要短板在内存带宽,杂化泛函可能时间给HF势长一些,纯泛函任务随规模增大,时间消耗会越来越堆积在对角化上;对角化吃内存带宽比矩阵元生成大得多,可能是这个导致。
不过也不排除是高斯版本间差异,有声音称G16C02是砍了一些向量化指令的,可以搞成相同版本再测测看。
WSL的性能损失比百分之十几要小,套一层HyperV应该是不到10%,基本可以忽略。我个人倾向于是软件/任务原因。

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

3#
发表于 Post on 2023-11-16 20:38:22 | 只看该作者 Only view this author
如果涉及多核心并行,
内存通道数,是重要的影响因素……
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

125

帖子

0

威望

2168

eV
积分
2293

Level 5 (御坂)

4#
发表于 Post on 2023-11-16 21:03:03 | 只看该作者 Only view this author
跑Gaussian任务的话,对内存带宽的需求可能没那么高。可能问题在于需要对wsl2手动进行线程分配。对于7950X而言,在任务管理器中的详细信息中找到vmmem进程,右键-设置相关性,只选择编号为奇数或偶数的16个CPU,再测试看看速度,直接用%nprocshared=16即可。

247

帖子

1

威望

2407

eV
积分
2674

Level 5 (御坂)

5#
发表于 Post on 2023-11-16 21:49:31 | 只看该作者 Only view this author
那不如找个大家都能测试的文件来跑一下咯,我跑了一下社长博文 http://sobereva.com/653 中测试用到的Gaussian自带的test0397,Gaussian16C.01 AVX2使用相同的关键词 b3lyp/def2svp force scf=novaracc g09default。7950x开启pbo2、32 GB 5600 * 2内存,时间为5min28s。如果看跑分,7950x性能接近双路6124的1.5倍才对啊。
我唯一知道的就是我一无所知,但我是化学小迷弟

247

帖子

1

威望

2407

eV
积分
2674

Level 5 (御坂)

6#
发表于 Post on 2023-11-16 21:55:02 | 只看该作者 Only view this author
ChemG 发表于 2023-11-16 21:49
那不如找个大家都能测试的文件来跑一下咯,我跑了一下社长博文 http://sobereva.com/653 中测试用到的Gauss ...

忘记说了,在Rocky Linux 8.8系统下运行的。之前对比过win10下使用VMware的Rocky linux8.8,性能确实有明显损失,10%肯定有了。建议直接装linux跑
我唯一知道的就是我一无所知,但我是化学小迷弟

68

帖子

0

威望

929

eV
积分
997

Level 4 (黑子)

7#
 楼主 Author| 发表于 Post on 2023-11-16 23:52:50 | 只看该作者 Only view this author
啊不错的飞过海 发表于 2023-11-16 20:11
多大的任务?多少核并行?
7950X的主要短板在内存带宽,杂化泛函可能时间给HF势长一些,纯泛函任务随规模 ...

大概80个原子带个Ru,基组Ru用的SDD,其他6-31G(d,p),泛函用的B3LYP-D3(BJ),我也感觉WSL的性能损失没这么大,不过还不知道倒底是什么导致的……

68

帖子

0

威望

929

eV
积分
997

Level 4 (黑子)

8#
 楼主 Author| 发表于 Post on 2023-11-16 23:56:01 | 只看该作者 Only view this author
ChemG 发表于 2023-11-16 21:49
那不如找个大家都能测试的文件来跑一下咯,我跑了一下社长博文 http://sobereva.com/653 中测试用到的Gauss ...

测试了一下,没超频,,内存32 GB 6000 * 2,给了高斯48GB(不过感觉都没用完)。用时8min20s,应该是哪里有问题。看别人的测试VM虚拟机的性能损失是挺大的,但WSL的性能损失会小很多(10+%)。我这个不知道是什么原因导致的,实在不行只能装双系统再看看了。

68

帖子

0

威望

929

eV
积分
997

Level 4 (黑子)

9#
 楼主 Author| 发表于 Post on 2023-11-16 23:58:02 | 只看该作者 Only view this author
ahxb 发表于 2023-11-16 21:03
跑Gaussian任务的话,对内存带宽的需求可能没那么高。可能问题在于需要对wsl2手动进行线程分配。对于7950X ...

看社长的文章,只绑奇数或偶数会导致共用一个物理核心,反而变慢,我试了一下也确实是这个样子的,本来8min的任务跑了10多分钟还没结束,我就提前停掉了。我也试了下绑0-15,用时9min17s,比不绑稍微慢一点点。

125

帖子

0

威望

2168

eV
积分
2293

Level 5 (御坂)

10#
发表于 Post on 2023-11-17 10:36:33 | 只看该作者 Only view this author
本帖最后由 ahxb 于 2023-11-17 10:40 编辑

印象里桌面CPU通常是CPU0和1对应同一个物理核,CPU2和3对应同一个物理核,依次类推。不嫌麻烦的话,你可以自己测试物理核与逻辑核的对应关系。比如可以提交一个用两个核心的任务,分别将wsl绑定到CPU0+CPU1、CPU0+CPU2上,记录其用时。此时有两种情况:(1)两次任务的用时没有显著差别,那么CPU0、CPU1、CPU2分属不同的物理核心;(2)两次任务用时有显著差别,比如CPU0+CPU1的用时显著更长,那么CPU0与CPU1是同一个物理核心的两个超线程。
例如,我在wsl2里用#p b3lyp def2tzvp作为关键词,计算了戊烷(无对称性构象)的单点能,不同绑定情况下的用时为:
CPU0+CPU1:34.5 s
CPU0+CPU2:25.5 s
那么CPU0和CPU1就是同一个物理核心的两个超线程,CPU0和CPU2则是属于两个不同物理核心的超线程。

846

帖子

16

威望

4634

eV
积分
5800

Level 6 (一方通行)

小屁孩

11#
发表于 Post on 2023-11-17 10:51:52 | 只看该作者 Only view this author
尽可能提升内存带宽。对于7950X,AIDA64内存带宽测试,90GB/s是合格线
- 向着虚无前进 -

186

帖子

1

威望

505

eV
积分
711

Level 4 (黑子)

12#
发表于 Post on 2023-11-17 11:41:11 | 只看该作者 Only view this author
ahxb 发表于 2023-11-17 10:36
印象里桌面CPU通常是CPU0和1对应同一个物理核,CPU2和3对应同一个物理核,依次类推。不嫌麻烦的话,你可以 ...

不是吧,大部分n核应该是0和n是一个、1和n+1是一个这样类推,绑0~(n-1)就可以用满n个物理核心

186

帖子

1

威望

505

eV
积分
711

Level 4 (黑子)

13#
发表于 Post on 2023-11-17 11:58:29 | 只看该作者 Only view this author
Strange 发表于 2023-11-16 23:58
看社长的文章,只绑奇数或偶数会导致共用一个物理核心,反而变慢,我试了一下也确实是这个样子的,本来8m ...

WSL现在可以绑定物理核心了吗?印象之前设置绑物理核心时,看任务管理器还是会各个CPU地乱跑,不知道怎么回事;内存用量从windows任务管理器只能看wsl的总用量(包括内存和缓存),wsl里开个htop可以看到分任务、分类型的内存使用情况。
八十来个原子用6-31G(d,p)再带一个SDD的Ru,大概两千来个基函数?感觉不应该这么慢呀,不过我好久没用高斯了,印象可能受ORCA影响比较大。
或许也可以用CP2K之类MPI写的程序对比下,高斯我印象是基于共享内存做的并行,可能受核间通信延迟影响更大。

125

帖子

0

威望

2168

eV
积分
2293

Level 5 (御坂)

14#
发表于 Post on 2023-11-17 13:19:54 | 只看该作者 Only view this author
啊不错的飞过海 发表于 2023-11-17 11:41
不是吧,大部分n核应该是0和n是一个、1和n+1是一个这样类推,绑0~(n-1)就可以用满n个物理核心

对我手上的10750H(6核12线程)确实是上面所说的那样

68

帖子

0

威望

929

eV
积分
997

Level 4 (黑子)

15#
 楼主 Author| 发表于 Post on 2023-11-17 13:26:44 | 只看该作者 Only view this author
Entropy.S.I 发表于 2023-11-17 10:51
尽可能提升内存带宽。对于7950X,AIDA64内存带宽测试,90GB/s是合格线

测试了下读取速度75GB/s,写入78GB/s,是有点慢,而且感觉离6000的内存条的理论性能差距有点大……请问这可能是什么原因导致的呢?

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 20:58 , Processed in 0.810707 second(s), 21 queries , Gzip On.

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