计算化学公社

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

[硬件评测] 形象地比喻并行计算

[复制链接 Copy URL]

31

帖子

0

威望

138

eV
积分
169

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 stishovite 于 2024-5-25 07:54 编辑

这个帖子发到这个板块不一定合适,请社长定夺迁移。

大家好,我是计算新手,对很多概念不熟悉,经过一段时间的学习和自己的理解,有感而发,对计算的一些事情做了比喻,如下:

计算=吃饭
计算类型=吃不同的饭(米饭、面条、饺子等,下面以米饭为例)

几个物理核算=几个人吃
单个物理核的计算速度=每个人咀嚼的速度
CPU缓存=每个人一次能放入口中的食物量

每个核心占用的内存=每个碗的容量
计算总内存占用=碗的数量*碗的容量

一个离子步(优化一步)=吃一口米
一个电子步(SCF迭代一轮)=咀嚼一次
优化收敛条件=把饭吃得多干净
SCF收敛条件=把米嚼多碎

至于计算受力、预测新构型之类的,则相当于“吞咽”。

完成计算=吃完所有的饭

双路CPU计算=两个队伍的人吃饭
Intel MPI,OpenMPI,MPICH等软件,制定并实施吃饭的策略,例如,几个人吃,几个人吃一碗,吃饭顺序等。


对于CP2K而言,
popt=被限定为一个人同时吃一碗(NUM_OMP_THEADS=1)
psmp=可以定义几个人同时吃一碗 (取决于NUM_OMP_THEADS=几)


注意:
1、提高计算速度(吃饭速度),需要增加核数(吃饭人数)和主频(咀嚼速度);
2、每个物理核占用的内存(每个碗的容量)和计算类型(吃什么饭)有关;
3、增加核数(吃饭人数)以后,如果每个核(每个人)分配一个计算任务(只能吃一碗饭),内存占用(人数*碗容量)就比较大;
4、为了节省内存占用(碗数*碗的容量),可以让多个物理核(多个人)同时处理一个任务(同时吃一碗饭);
5、总计算速度并不总是和物理核心数呈正比,因为同时吃饭的人多了以后,由于之间相互协调的时间也增加了。

实际的并行计算还有许多复杂的细节,需要在实践中不断深入学习,请大家拍砖指正和补充完善,帮助新手尽快建立对并行计算的直观理解。







99

帖子

0

威望

3297

eV
积分
3396

Level 5 (御坂)

2#
发表于 Post on 2024-5-24 23:21:04 | 只看该作者 Only view this author
本帖最后由 LittlePupil 于 2024-5-24 23:27 编辑

在其它因素相同的情况下,收敛条件决定了收敛步数,但你这里“嚼多碎”与“嚼几口(粒)”并无直接关系,比拟不类,不妨这样说:
一个离子步(优化一步)=吃一口米
一个电子步(SCF迭代一轮)=咀嚼一次
优化收敛条件=把饭吃得多干净
SCF收敛条件=把米嚼多碎
至于计算受力、预测新构型之类的,则相当于“吞咽”。

吃饭顺序并非由MPI所决定,而是由队列系统决定的。
另外,关于“几个人同时吃一碗”,你这里出现了两种相互矛盾的说法,第二种更贴切一些。
「狩りってのは先に焦せった方の負けだ、ハンターも獲物もな」

31

帖子

0

威望

138

eV
积分
169

Level 3 能力者

3#
 楼主 Author| 发表于 Post on 2024-5-25 07:55:28 | 只看该作者 Only view this author
LittlePupil 发表于 2024-5-24 23:21
在其它因素相同的情况下,收敛条件决定了收敛步数,但你这里“嚼多碎”与“嚼几口(粒)”并无直接关系,比 ...

谢谢您的补充指正,我已在帖子中修改。

本版积分规则 Credits rule

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

GMT+8, 2024-11-23 12:03 , Processed in 0.203533 second(s), 21 queries , Gzip On.

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