电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
栗子派高性能集群 - 性能测试
分 享
扫描二维码分享
栗子派高性能集群 - 性能测试
MPICH集群
高性能集群
栗子派集群
robe_zhang
关注
发布时间: 2020-04-20
丨
阅读: 780
[栗子派 MPICH 高性能集群](https://www.icxbk.com/article/preview?astatus=1&aid=1299http:// "栗子派 MPICH 高性能集群")的搭建,如下连接: https://www.icxbk.com/article/preview?astatus=1&aid=1299 ![](https://cf05.ickimg.com/bbsimages/202004/4b4b8fd3287c8c9033f77796b468cf9a.png) 本文测试此集群的性能。因为栗子派采用 rockchip RK3399 芯片,内含6颗核心,2个A72核心 和 4颗A53核心。核心架构不一样,通过下面的测试方案,来比较多核心多节点集群性能相对于单核心单节点单机性能的提升,及集群的效率: 测试程序使用 MPICH 官方源码中的 icpi.c 程序 # A53核心测试: 关闭A72核心,只保留A53核心,测试A53核心性能和效率 1,测试单节点(本机节点)单颗A53核心计算pi所用的时间 2,测试单节点(另一个节点)单颗A53核心计算pi所用的时间 3,测试单节点(本机节点)4颗A53核心计算pi所用的时间 4,测试单节点(另一个节点)4颗A53核心计算pi所用的时间 5,测试双节点(本机节点+另一个节点)8颗A53核心计算pi所用的时间 查看哪个cpu 是A53 核心,哪个CPU是A72 核心: 查看CPU 的compatible 属性,Cpu0-3 是4颗A53核心,CPU4-5 是两颗A72核心 ![](https://cf05.ickimg.com/bbsimages/202004/4eae8ecf11b6ec487095c9843e61e5ae.png) Cpu 核心在linux系统中也是一个设备,可以任意插拔,只要保留一个核心运行linux系统,其他几颗核心都可以随意插拔的。要测试A53核心,避免A72干扰,直接把A72关闭了,也不用配置进程绑定CPU,主要是笔者不知道怎么把进程绑定到CPU上,但是会关闭核心,可以实现同样的功能。 如上图关闭之前 CPU0-5 六颗核心全部在线可用,关闭后,CPU0-3 在线可用,CPU4-5 离线不可用 ![](https://cf05.ickimg.com/bbsimages/202004/c84bbb65042a2717cf191442accf3884.png) 再修改host文件,给每个节点配置进程数,进程可以平均分配到每个核心上运行 #### 1, 测试单节点(本机节点)单颗A53核心计算pi所用的时间。 只在一个节点运行,并且是在本机节点运行,修改host配置文件,把本机leezb 节点放在第一行,leeza 节点紧随其后,这样才能保证第一个进程运行在 leezb上 ![](https://cf05.ickimg.com/bbsimages/202004/cdbf7c5dcd01c364dba3d3c3051e10a7.png) 运行 MPICH 例程 icpi 开启一个进程计算pi,其中 999999999 是个pi精度有关的参数,详细的不去深究,本文所有测试都使用 999999999,最终对比数据时就可以忽略这个变量不用考虑。 单节点(本机节点)单颗A53核心计算pi用时48秒 ![](https://cf05.ickimg.com/bbsimages/202004/ccaff33e79f86e0891045caca3e07bbf.png) #### 2,测试单节点(另一个节点)单颗A53核心计算pi所用的时间 关闭A72核心,保留A53核心 ![](https://cf05.ickimg.com/bbsimages/202004/7be88101849de4c5c507a1db12f3144e.png) 修改host配置文件 ![](https://cf05.ickimg.com/bbsimages/202004/73ee89e263da0c12c9142e0bfd5eb6bd.png) 单节点(另一个节点)单颗A53核心计算pi用时48秒: ![](https://cf05.ickimg.com/bbsimages/202004/286e8faadbe66b1dded1bf4b2e594aa1.png) 从后台进程也能看出来,这个进程确实分配到 另外一个节点leeza,ip为49 上了。 ![](https://cf05.ickimg.com/bbsimages/202004/27f29adc4a5d824fe05c33a434f15a19.png) 其实从这里已经能看出来MPICH 多节点运算的效率,那是相当优秀了,跨节点分配进程运行时间和本机运行时间一样,性能毫无损失。继续测试,稍后再分析数据 #### 3,测试单节点(本机节点)4颗A53核心计算pi所用的时间 ![](https://cf05.ickimg.com/bbsimages/202004/07c9a79613efd9a1d323cf218c2217d7.png) ![](https://cf05.ickimg.com/bbsimages/202004/f4277693c2e50c9d52e209858cbcadb2.png) 单节点(本机节点)4颗A53核心计算pi用时12秒 ![](https://cf05.ickimg.com/bbsimages/202004/7dc0cea214e9eee0cbae26b31dab2ec1.png) #### 4,测试单节点(另一个节点)4颗A53核心计算pi所用的时间 ![](https://cf05.ickimg.com/bbsimages/202004/6a0405051161f9b177c6bc577decb080.png) ![](https://cf05.ickimg.com/bbsimages/202004/4e880d1af3a63baaa314880ee35d56e0.png) 单节点(另一个节点)4颗A53核心计算pi用时12秒 ![](https://cf05.ickimg.com/bbsimages/202004/f7131b5caa514d562dfcf77a32e0761c.png) #### 5,测试双节点(本机节点+另一个节点)8颗A53核心计算pi所用的时间 8颗核心,运行8条进程,单个节点配置4条进程,第一个节点优先分配4条进程,剩余的4条进程会分配到第二个节点上了 Host 配置文件不用动,一共配置8条进程,双节点全部跑满,先后顺序无所谓了 ![](https://cf05.ickimg.com/bbsimages/202004/4df0fad107fcc86235d229ebc254ec26.png) 运行这个命令,开启8条进程,运行 ```shell mpiexec -f ../../host -n 8 ./icpi ``` ![](https://cf05.ickimg.com/bbsimages/202004/9ea67bfdf588c54e3bdc9095e3921db6.png) 双节点(本机节点+另一个节点)8颗A53核心计算pi用时6秒 ![](https://cf05.ickimg.com/bbsimages/202004/834974d3ee4d988b9744964ca079721a.png) #### 汇总、分析数据: ![](https://cf05.ickimg.com/bbsimages/202004/7ccc2c3e2eea86b0c581951a9d06e888.png) - 单颗A53核心计算PI用时48秒,4颗A53核心计算PI用时12秒 - 计算性能就是简单叠加,性能没有任何损失 - 单节点(本机节点)单颗A53核心计算pi用时48秒,单节点(另一个节点)单颗A53核心计算pi用时48秒 - 非本地节点计算性能,和本机节点计算性能,一摸一样,没有任何损失 - 单颗A53核心计算PI用时48秒,8颗A53核心计算PI用时6秒 - 多核心多节点,计算性能叠加,性能没有任何损失 **超算,集群的魅力也许就在这里了,使用 MPICH 平台的集群性能,是单机性能的叠加,完全堆硬件,只要节点数量多,性能可以上天(哈哈,也许有其他瓶颈,幸好当前的栗子板还没有碰到瓶颈)。 栗子派集群充分发挥出了 MPICH 的优势,从而使集群的效率不低于 99.61%。相当厉害,难怪超算都用 MPI 模型** # A72核心测试: 关闭A53核心,只保留A72核心,测试A72核心性能和效率 1,测试单节点(本机节点)单颗A72核心计算pi所用的时间 2,测试单节点(另一个节点)单颗A72核心计算pi所用的时间 3,测试单节点(本机节点)2颗A72核心计算pi所用的时间 4,测试单节点(另一个节点)2颗A72核心计算pi所用的时间 5,测试双节点(本机节点+另一个节点)4颗A72核心计算pi所用的时间 测试方法,host 配置文件,等等测试细节,完全同上,只是把4颗A53节点换成2颗A72节点,测试结果如下: ![](https://cf05.ickimg.com/bbsimages/202004/4a533739ef5fa28b27fdc4a4717fac7f.png) ![](https://cf05.ickimg.com/bbsimages/202004/cd37a068bf57f48f2ef018d69a1eff01.png) ![](https://cf05.ickimg.com/bbsimages/202004/6832c4c6a4a388b01c28bb37c5821cb6.png) #### 单节点(本机节点)单颗A72核心计算pi用时15秒 ![](https://cf05.ickimg.com/bbsimages/202004/4dd895c49d426df59ac41e9e321e3269.png) #### 单节点(另一个节点)单颗A72核心计算pi用时15秒 ![](https://cf05.ickimg.com/bbsimages/202004/70176354ebe08aa1aa18414b98ed4fed.png) #### 单节点(本机节点)2颗A72核心计算pi用时7.8秒 ![](https://cf05.ickimg.com/bbsimages/202004/902b4bf59d7799521ebe22fa3531fc75.png) #### 单节点(另一个节点)2颗A72核心计算pi用时7.8秒 ![](https://cf05.ickimg.com/bbsimages/202004/3dc8137fb6c3af87f12686f60b294bb6.png) #### 双节点(本机节点+另一个节点)4颗A72核心计算pi用时3.9秒双节点(本机节点+另一个节点)4颗A72核心计算pi用时3.9秒 ![](https://cf05.ickimg.com/bbsimages/202004/52f9e539a12c0331202e53eb32a5069b.png) #### 汇总、分析数据: ![](https://cf05.ickimg.com/bbsimages/202004/5c0640694a45e534d1846e253719d751.png) **多核心多节点,性能叠加,效率一直保持最大值,测试结果和结论同A53核心** # A53 + A72 核心混合测试: 开启A53核心,开启A72核心,测试不同核心集群的性能和效率 1,测试单节点(本机节点)1颗A53核心和1颗A72核心计算pi所用的时间 2,测试单节点(本机节点)4颗A53核心和2颗A72核心计算pi所用的时间 3,测试双节点(本机节点+另一个节点)8颗A53核心和4颗A72核心计算pi所用的时间 #### 单节点(本机节点)1颗A53核心和1颗A72核心计算pi用时24秒 ![](https://cf05.ickimg.com/bbsimages/202004/adcdd9c750f8be01b0a614d36e80f067.png) ![](https://cf05.ickimg.com/bbsimages/202004/03a726bec3b6096328626c976575acae.png) ![](https://cf05.ickimg.com/bbsimages/202004/cacf2aaeb59133a73928bf271f1648af.png) #### 单节点(本机节点)4颗A53核心和2颗A72核心计算pi用时8秒 ![](https://cf05.ickimg.com/bbsimages/202004/d1235eec4dd97ab9ea95de4a2277c0ba.png) ![](https://cf05.ickimg.com/bbsimages/202004/de43cfcb93d3b197c229ffbc3c6bf7de.png) ![](https://cf05.ickimg.com/bbsimages/202004/59fd711d573e2d798bb095980a2a04fe.png) ![](https://cf05.ickimg.com/bbsimages/202004/abe473503b385a3fe8d6b0658a70c8ec.png) #### 双节点(本机节点+另一个节点)8颗A53核心和4颗A72核心计算pi用时4秒 ![](https://cf05.ickimg.com/bbsimages/202004/19116cce617d593b27d8e2a4b41826b5.png) ![](https://cf05.ickimg.com/bbsimages/202004/431c8a7b7de6aa556c57a9ed02c5db9e.png) #### 汇总、分析数据: ![](https://cf05.ickimg.com/bbsimages/202004/76c9554ecadd9517558ce09fce6c0218.png) **测试3相对于测试2,计算节点数翻倍,计算PI用时减少一半,计算性能还是叠加的,两者效率是一样的。** 测试2相对于测试1,计算性能增加到原来的 250%,理论上计算PI用时减少到原来的40%,实际用时减少到原来的 34%,这个不太合理,所以导致测试2集群效率高于100%。不合理的根源在于测试1效率太低,又一次为基准,只要后面的测试2和3集群效率稍有提升就超过了100%。 测试1集群效率有多低?取以下三组数据对比: ![](https://cf05.ickimg.com/bbsimages/202004/df8c35036526147e1daf7e84ff1ff847.png) 1颗A72核心,计算PI用时15秒 1颗A53核心+1颗A72核心,同时并行计算PI用时24秒 **多了1颗A53 核心参与计算,反而拖慢了计算速度,精确计算,这种异构组合的集群效率只是理论值的48.79%。** 集群效率低于50%意味着什么?A53 和A72性能差异太大,需要归一化才能比较,举个其他例子: 假如一颗CPU计算同一个数据,耗时1小时 两颗同样的CPU并行计算同一个数据,还是耗时1小时,此时集群效率是50%。 **集群效率低于50%,也就是多了一颗CPU并行运算,反而没有单颗CPU计算快。** MPICH 在不同类型核心的集群上效率很差劲。从另一组测试数据也能看出来,如下 ![](https://cf05.ickimg.com/bbsimages/202004/64ff1646df04da002bbce8e6d2dd8462.png) **双节点4颗A72核心测试结果,和双节点4颗A72核心 + 8 颗A53 核心测试结果,对比:后者多了8颗A53核心参与计算,用时反而更长,计算更慢,效率是很低的** **总结:把所有测试项汇总到一起,栗子派集群性能先归一化,再计算集群效率,如下表:** ![](https://cf05.ickimg.com/bbsimages/202004/7fca33e2b008465a22fb620b0e9efcbe.png) **1,栗子派集群采用了MPI 模型,集群效率相当优秀,同类型核心集群效率保持100%,简单堆核心就可以实现性能叠加。比如测试序列1-5,只要核心多,耗时就少。比如测试序列6-10。基于此可以多花钱买时间 2,栗子派单个节点内部,核心全开效率降低,但是从集群来看,堆节点仍然可以实现性能叠加,效率保持不变。比如测试序列12,13,双节点比单节点耗时减少一半。 3,MPI 模型比较适合于同核心的集群,或者同节点的集群,能够增加核心或增加节点,实现性能叠加,效率保持不变几乎没有损失。**
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
robe_zhang
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交