计算化学公社

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

[Quantum ESPRESSO] QE并行效率有点低嘛

[复制链接 Copy URL]

219

帖子

0

威望

941

eV
积分
1160

Level 4 (黑子)

用的https://github.com/QEF/benchmarks上的
small-benchmarks里的para-speedup.sh
机器是双Intel(R) Xeon(R) CPU E5-2680 v3
系统是centos 7.9

intel编译器
test      cpu-time    I/O-time     speed-up

    4       623.29s                  1.00000
    8       424.34s                  1.46885
    12       349.65s                  1.78261
    16       319.95s                  1.94809
    20       305.77s                  2.03843

    24       297.50s                  2.09509



直接yum安装的
test      cpu-time    I/O-time     speed-up

    2      1589.74s                  1.00000
    4       984.00s                  1.61559
    6       841.18s                  1.88989
    8       730.32s                  2.17677
    10       519.54s                  3.05990
    12       467.06s                  3.40372
    14       439.64s                  3.61600
    16       351.33s                  4.52492
    18       316.23s                  5.02716
    20       318.06s                  4.99824
    22       323.97s                  4.90706
    24       320.53s                  4.95972

358

帖子

0

威望

2307

eV
积分
2665

Level 5 (御坂)

2#
发表于 Post on 2022-5-2 08:05:59 | 只看该作者 Only view this author
有条件的课题组,当然是用vasp。

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

3#
发表于 Post on 2022-5-2 09:03:39 | 只看该作者 Only view this author
没有做调优编译,用了自定义的编译器,
未必能有预编译的二进制版本跑得快……
High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

219

帖子

0

威望

941

eV
积分
1160

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2022-5-2 15:15:24 | 只看该作者 Only view this author
abin 发表于 2022-5-2 09:03
没有做调优编译,用了自定义的编译器,
未必能有预编译的二进制版本跑得快……

用了intel编译器,各种库也加上了的

339

帖子

0

威望

5053

eV
积分
5392

Level 6 (一方通行)

5#
发表于 Post on 2022-5-2 15:37:33 | 只看该作者 Only view this author
看你测的是small-benchmarks,核数超过16就基本没有多少加速了。换中等大小的体系测一下,之前测过超过5000电子体系,并行标度直到256核心非常不错的

421

帖子

4

威望

2934

eV
积分
3435

Level 5 (御坂)

6#
发表于 Post on 2022-5-2 16:07:29 | 只看该作者 Only view this author
QE有一套并行参数:-nimage -ngroup -ntask,分别对image,k点和fft网格并行。默认是对fft网格并行,也就是把波函数展开系数均分到每个cpu上。数据交换量很大。

建议编译的时候开启openmp,结合-ngroup测试。

219

帖子

0

威望

941

eV
积分
1160

Level 4 (黑子)

7#
 楼主 Author| 发表于 Post on 2022-5-2 16:20:39 | 只看该作者 Only view this author
万里云 发表于 2022-5-2 16:07
QE有一套并行参数:-nimage -ngroup -ntask,分别对image,k点和fft网格并行。默认是对fft网格并行,也就是 ...

openmp是要使用openmpi吗?
我用的intel mpi

421

帖子

4

威望

2934

eV
积分
3435

Level 5 (御坂)

8#
发表于 Post on 2022-5-2 17:57:19 | 只看该作者 Only view this author
qchem 发表于 2022-5-2 16:20
openmp是要使用openmpi吗?
我用的intel mpi

openmp无歧义的写法是OpenMP,属于线程级并行。
openmpi无歧义的写法是openMPI,属于进程级并行。
一个MPI进程下可以有n个OpenMP线程,对应的cpu占用就是100%*n。

其实内存带宽相对于进程数是远远不够用的,所以进程一多效率就上不去了。用MPI+OpenMP混合并行,一方面可以降低内存占用,一方面可以提高缓存利用率,把并行效率的上限拉一点点。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
snljty + 3

查看全部评分 View all ratings

421

帖子

4

威望

2934

eV
积分
3435

Level 5 (御坂)

9#
发表于 Post on 2022-5-2 18:02:06 | 只看该作者 Only view this author
贴一下我们组开发的一个程序的并行测试结果。一个节点上有16个核,1进程*16线程就是纯粹的OpenMP并行,16进程*1线程就是纯粹的MPI并行。从结果来看,这两种效率都不是最高的。最高的是8进程*2线程。

当然,加节点的效果是最好的。





评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
snljty + 2

查看全部评分 View all ratings

2425

帖子

1

威望

6196

eV
积分
8641

Level 6 (一方通行)

10#
发表于 Post on 2022-5-3 09:22:58 | 只看该作者 Only view this author
qchem 发表于 2022-5-2 15:15
用了intel编译器,各种库也加上了的

这叫做选择使用Intel 工具链做编译。
和优化编译是两回事请。

mpirin -n N xxx
will invoke 1 MPI rank,

Normally data will not share among MPI ranks.
Therefore data are duplicated, there are N copies of data,
which means more RAM are needed.
You will need more channels to speed up the data exchange.

As a result, for MPI paralleled VASP,
memory channels are very important.

This rule almost stands for all MPI applications,
especially for those with intensive data-exchange.

High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

358

帖子

0

威望

2307

eV
积分
2665

Level 5 (御坂)

11#
发表于 Post on 2022-5-4 08:47:28 | 只看该作者 Only view this author
万里云 发表于 2022-5-2 18:02
贴一下我们组开发的一个程序的并行测试结果。一个节点上有16个核,1进程*16线程就是纯粹的OpenMP并行,16进 ...

如果是 56核心112线程的机器,最好是14进程*4线程或者 28进程*2线程。用多少线程,依据通道数来设置,即内存条的数目。

421

帖子

4

威望

2934

eV
积分
3435

Level 5 (御坂)

12#
发表于 Post on 2022-5-4 11:07:45 | 只看该作者 Only view this author
gog 发表于 2022-5-4 08:47
如果是 56核心112线程的机器,最好是14进程*4线程或者 28进程*2线程。用多少线程,依据通道数来设置,即 ...

应该是进程数等于通道数吧?

进程间不共享数据,线程间共享数据。如果CPU缓存大,共享的数据又不多,可以直接放在缓存里,不走内存通道。

15

帖子

0

威望

639

eV
积分
654

Level 4 (黑子)

13#
发表于 Post on 2022-7-29 16:38:24 | 只看该作者 Only view this author
chrinide 发表于 2022-5-2 15:37
看你测的是small-benchmarks,核数超过16就基本没有多少加速了。换中等大小的体系测一下,之前测过超过5000 ...

请问是指一个晶胞内5000个电子吗?

本版积分规则 Credits rule

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

GMT+8, 2026-2-20 16:53 , Processed in 0.200099 second(s), 24 queries , Gzip On.

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