打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
又 遇 深 坑 ...
userphoto

2023.05.10 陕西

关注

最近我们打算重新搞一套新配置。来搭建机架式服务器。熟悉我们的朋友应该知道。之前我们调试出来的配置。16节点都可以做到线性加速比。

这个调试出来老费劲了。我觉得我多年以后,回头想这一段经历。简直都难以想象当年怎么费这么大劲能搞出来。

这一段经历,简直是折磨。改一个参数,要改10多台机器。你们想一想。跑算例,大夏天,跑机架式10多台,简直就是烤猪。

就这一套摸索了要疯的配置。我们按照经验原版照抄,发现新配置又不行了。

当然了,结果不是很差,可以说不是特别完美。

我总感觉是某个关键的地方没整对。就某一个关键的地方。

我追求的目标是:至少10节点,线性甚至超线性。

我定义的机架式服务器的不完美:10节点无法线性加速,但增加节点数,速度会增加,不会降低。

我定义的机架式服务器的残次品:节点越多,速度越差。比如7节点比5节点速度还低。

之前我们就是从残次品 - 到不完美 - 再到可以出厂这个过程。

现在我们又卡到了不完美这个阶段。

其中有个小插曲。我们有个20个节点的客户,他们联系袋儿,总价是600万。我这面不到200万。

我们调试了这么长时间的加速比。如何调出来我们在摸索,但是这个配置不能出线性加速比。我是知道的。

那个报价单,我看了,呆呆这个,肯定做不到线性加速比。在我做CFD计算的角度来看。这种达不到线性加速的机架式,是不完美的。

我按照他们这个配置来,甚至感觉就是个残次品的机架式服务器。10节点要比5节点要慢。

那呆呆那面保证CFD计算线性加速比么?

呆呆那面会给客户一堆参考,说:“这是amd/intel测试的,可以出线性加速比”。

然而呆呆交付的时候,不会给你们做配置。就是交付砖头。用户自己去配置。

在我看来,这就等于说,呆呆给你一个sci,说参考这个sci,算法可以线性加速,我们把OpenFOAM给你,你们自己去植入吧。

我非常不理解的是。呆呆那面做服务器肯定是市场数一数二。呆呆那面的CFD服务器线性加速程度到底如何??有人告知么?

最后发一些之前发过的文章,我们现在又要走这一步老路了 

你们还以为CFD服务器就是纯硬件么?

-----

本文记录下我与小伙伴,搭建高性能HPC的历程。

一路走来,坎坷无数,多次想放弃。系统装了无数次,软件装了无数次,OpenFOAM装了无数次,Ansys装了无数次,驱动装了无数次。网卡买了n个、网线买了n个、硬盘买了几十个个。熬了几十个夜晚。

在度过了一次次的低谷之后,终于达到了我们满意的结果。并且这个是远超同行的结果。这几个月的工作,我们的目标,就是按照SCI的标准,就是把下面这个图中的弯曲的线,掰直!

这是我们最满意的机架式服务器。按照我们写SCI论文的学术标准,按照我们严谨的不达到最高性能不放弃的诉求。终于做到了。

这绝对是,可以计算亿万网格,把性能发挥到极致的性能怪兽!

HPC搭建

HPC平台搭建说难是真难,说简单也简单。这种技术问题,会就是会了,不会就是不会。

HPC平台的搭建,主要是通过调节各种的参数,把性能发挥到极致。如果性能不能发挥到极致,那这个HPC基本就是个废物。是的,我们就是按照这个标准,严格来做的。

从硬件上来说,HPC平台就是把若干的台式机,通过网线连起来。软件上,HPC需要非常精细的调试。所以HPC的成本,主要是台式机+网线+网卡+交换机+软件配置+人工技术。

硬件上,这个成本差别特别多,并且基本是几十倍的区别。比如,现在的网卡,家用的一般都是150M,200M。但是HPC这面,最低是10000M起步。还有40000M的,56000M的,100000M的,200000M,甚至400000M的。

HPC的网卡传输速率,基本是家用的上千倍!

那你到底是买什么样的网卡?多快的?每个节点配多少核心?这个就需要逐个的测试才行。这也是我们这几个月以来的工作。

有了这一堆硬件之后,就是对各种参数的调试了。这部分工作,占据了我们80%的时间。

跨越2年的调试历程

最早做塔式服务器的时候,我们就发现,塔式服务器由于架构限制,多核心不代表高性能。比如下面是我们实测的数据,可以看出来,在塔式服务器上,核心越多,性能的提升很小了。

所以我这面塔式服务器,从来不做128核心的。

我们在2021年过年的时候,就开始机架式服务器的构想。因为自己的时间太紧了,最开始我找的是我同学,人在重庆,但是发现弄起来很不方便。后来找了一个附近的学生,不过后来各种原因不弄了。

于是我又开始找,后来找到了一个我的本科的一个师兄,也是北京化工大学的。目前也在北京的高校老师(简称A老师)。就是俩人距离有点远,一个海淀,一个石景山。

2021年过年的时候,我们着手的是搭建双机并联。

双机并联128核,要比单机128核快得多。这也是我再次强调,为什么我不走单塔式128核心的原因。

2021年春节的时候,在踩坑无数之后,成功的把双机并联了起来。因为时间已经过去很久了,所以现在回忆不到太多细节。

(两台机器双机并联的操作过程我已经发布在了dyfluid.com,大家感兴趣可以自己尝试,如下图)

随后,我们从2022年春节,大约就是1月中下旬,继续弄这个机架式服务器。直到4月中旬,一直在弄这个机架式服务器。

这里面的坑实在是太多了。走一步,掉一个坑

HPC的搭建,节点之间的连接有ETH,有Infiniband两种。每一种方式,分为10G,40G,100G,200G,甚至400G。

那么到底是选择ETH,还是选择Infiniband?

10G网卡与100G网卡,相差10倍的价格。200G网卡,一张卡就能买一个电脑。

我们上10G?还是200G?

同样,CPU性能上,有些CPU价格相差3 5倍,花5倍价格买一个CPU,CFD性能能否快5倍?

我的原则是,不堆CFD参数,而是挑选最具有性价比的配置。让客户花最少的钱,拿到最流弊的性能!

还有一些软件的参数。这个坑特别的多,每一步一个坑,每个坑要卡住2天。

给大家举个例子:

# Let NetworkManager manage all devices on this systemnetwork: version: 2 renderer: networkd ethernets:          ibp49s0: dhcp4: no dhcp6: no addresses: [11.11.11.2/24]

上面这个代码,在设置的时候,这个大家都知道不能写错了。这是最基本得了。

同时,上面这个代码,空格也必须写,不写就会报错。当时在这卡了好久

甚至OpenFOAM里面source那一行代码。在.bashrc里面写,写在文件底下就不行。需要写在文件头!

当时也在这卡了好久

最重要一个坑,也是高性能计算最大的一个坑,甚至好多厂商都忽略的一个坑,但是是CFD计算最重要的参数。那就是算例的scale特性

简单来说,我们的目标,就是把20台机器连起来,速度提升20倍。否则,就是不达标。

这在很多人看起来,只是SCI里面出现过的数据,从来没实现过,甚至觉得是不可能。

我们的10节点机架式服务器,在踩了很多坑,顺利连起来之后。随后进入了另外一个巨大的坑,甚至都要出不来了。

我们真的是在这里卡住了3个多月。

我们之前测试,过了2个节点之后,scale性能一直上不去。我们在2022年1月份的时候,就发现用更多的CPU,速度反而更慢。

又是卡了好久。。。

在卡了好久之后,我们决定换mpi并行库,我们上了intelMPI。

安装过程中,又卡了一阵子。我看他们都用icc+intelMPI,我就想不明白一个是mpi,一个是编译器,为啥要捆绑一起用呢?其实用g++也可以啊。

开始装不上,后来发现是openmpi、intelMPI冲突了,后来重做了个纯净的系统,安装是没问题了。

但是intelMPI还是scale上不去。在这又卡了好久。。

后来我们想是不是网格数量太少了,然后我们做了个3000万网格。scale性能上去了。但是还是达不到线性。

这里又卡了好久。。。

我们想是不是跟CPU特性有关。是不是之前的某一代CPU并行就是不太好,新出的CPU并行会更好?

我们打算拿最新一代的CPU测试,但是发现太贵了,一次也买不了这么多做测试

在这里再一次卡住了。

我们想是不是网络通信的原因,100G、200G通信,到底能比40G、10G快多少?价格翻了几十倍?CFD性能能上几十倍么?

费劲九牛二虎之类,找到了个供应商可以提供100G、200G网卡用来测试。于是我们来试了一下。

在2月9号的时候,我们换到了infiniband。

嗯,确实有提升!但是不是很明显。就在这里,我们卡了2个星期。足足两个星期。

在2月21号的时候,我在跟A老师联系的时候,真要崩溃了。这卡住的时间也太久了。

我们在想,这是不是设置有问题,还是到底就是这个样子?在一次偶然间,我还是上网搜,看到有人写mpi的时候,需要加个参数。

就是这么一个简单的参数,非常简单的一行字,加了之后,速度就上来了!搞得我们异常兴奋。

但是在后期我们上4 5个节点的时候,在2月23号,还是存在问题。速度又一步的下来了。。。。。

我们怀疑是CPU的问题。于是下一步,我们打算换CPU试一下,换一些更强劲的CPU,会不会并行特性会更好一些?

但是这些CPU贵啊,在没有单的时候,也不能屯太多。

于是我这面就赶紧给塔式服务器客户装塔式机器,顺便用客户的塔式机器测试机架式的性能。

测着测着的同时,A老师感觉可能跟内存也有关系。。。

交换机或许也有关系?。。。

我们一直在寻找,如何能达到一个线性的加速比。后来我感觉可能跟算例也有关系

在2月26号的时候,我们发现4节点已经可以达到线性的加速比了!

我们当时以为啥都没问题了。为了给客户发10节点机架式服务器,我们进一步测试了5节点、6节点的。

然而,坑又来了。。。5节点,速度又下去了。。

我们感觉可能是MPI的问题,然后改了下MPI。。也有可能需要挂在hpcx。

后来我们怀疑是驱动有问题。

到后来,经过卡了这么久,我们索性直接换windows,不知道性能如何。于是开始了windows的踩坑之路。

然而,坑还是多

遇到了很多linux可以连上,windows缺不能用的情况。。。

还发现机箱也有问题,这种机架式服务器,机箱特用特殊的,那种普通的还不行。有散热问题。于是我们又换了一批机箱。

遇到疫情,物流送不过来。

后来我们还在考虑跳闸的问题。。因为节点太多了。

到后来,我们把7个节点连起来了,起码能跑了起来,问题不大。

然而问题又来了,4节点速度可以满血跑。但是7节点速度还是上不去。。。然而这个时候,客户已经在催着发货了。

这个时候,我们尝试了各种系统,各种驱动,各种内存,各种CPU,各种网卡,各种版本的软件,各种网线,各种各种能调节的东西,就是上不去。

就是我们搞了一套法拉利内核的机器,但是由于配置问题,变成了奥拓。

。。。

。。。

。。。

时间紧、任务急,实在没招了,我们决定寻找外部力量。

后来,我们找了某专门做HPC的大厂的技术人员。在后来,这个沟通过程就不细说了,因为牵涉到不是自己团队的人,也不好放沟通记录。

重点是,

重点是,

按照这个专业做HPC大厂的人的技术水平来做的话,性能竟然比我们的还差!!!!!!

但是这个HPC大厂,他们一年要交付出去好多服务器啊,好多几十个节点的服务器,他们就这样,在我的眼里,认为完全不达标的标准,卖出去了这些上百万的HPC。

在我们弄了几个月之后,在我们寻找外部理解都没有解决之后。一度真的想放弃了。

我认为这种性能不拉满的服务器,虽然硬件配置到位了,但是只能是个半成品。不能出给客户。我甚至考虑办退款。

退款也不是那么好操作的,因为款项比较大,咱这面钱都花出去进货了。手头也没有钱推给客户。

这绝对是2022年,完全看不到边际的至暗时刻。

我植入了那么多流弊的算法,接过百万的项目,怼过审稿人,为了一个算法推方程能推个70页。

我们竟然被一个小小的并行设置卡住了3个月。

我们总是劝说“这是黎明前的黑暗”,但是这也太黑暗了。完全看不到光。

到后来,我捉摸联系各种SCI论文的作者,想知道为啥你们那种流弊的数据,到底是怎么出来的,为啥我这面搞不出来???

不过时间太紧,根本拍不上用场,完全是石沉大海。

其实我这面,白天都是在上班做项目,装服务器都是在晚上之后弄。目前来看,这个问题不解决,我也非常闹心。于是,项目不做了,先放一放。看看能不能把这个问题解决。

于是,我跟A老师开始了白天装机架式,晚上装机架式。

就在我们不相信任何外部力量,只相信自己的时候,毕竟咱们才是专业做CFD的,咱们肯定也是专业做CFD高性能HPC的,

逐渐有了光出来...

在某一天早上的时候,2节点并联,速度有提升,虽然不明显,但是我认为,黎明就在眼前!

我们尝试了3节点,速度搜搜搜的就上来了!!!!!!!!!!!

4节点,性能已经飞了起来!!!

中途我们还评价了一个HPC同行。按照我们的性能标准,他们交付的HPC在我们来看,是完全不达标的。

我们让HPC同行测试,16个节点,加速比只有5!我们的目标,是16个节点应该在16左右。

到后来,我们还测试了8节点,也是完全线性的。之前6000万网格,Fluent需要跑2000秒的。我们用8节点机架式跑,只需要250秒!!!!

HPC大厂那,2000秒的算例,8个节点,需要跑500秒!并且配置来看,比我们这个成本还要高!

简而言之:HPC大厂、成本高、性能差!下面是我们的CFD高性能计算scale数据:

我们的10节点,加速比达到108%!同行的10节点,加速比只有40%!也就是说,同行HPC的价格,比我们的价格高,性能也只有我们的40%!!

事已至此,历时好几个月的机架式HPC调试,算是完成了。在其中,我们走了太多的坑。装了那么多系统,插拔那么多次硬盘。无数次想放弃。最终还是挺过来了。

现在,我们敢说,我们的CFD机架式服务器,绝对是最流弊的!经过调试,绝对能发挥出最强的性能。可以开启传说中的亿万网格之旅!

遗憾1:埋没的CPU

在最后,我还要说一些商业性的东西,算是一种遗憾。

在测试的过程中,我们发现,有一些CPU已经很老了,价格很便宜,但是性能依然强劲。有一些CPU很新,成本数倍以上,但是性能提升很少。

举个例子,某老款CPU,8000块,跑算例大约100秒。某新款CPU,18000元,跑算例,90秒。

反过来想,某个18000元的新款CPU要跑90秒的算例,某个老款CPU成本降了一半,只不过慢了10秒

从我个人推服务器的角度,我一直觉得,这个老款CPU绝对是首选。但是,我们还不能主推这些老型号的CPU。

Why?

原因很简单,有很多客户,不,大量的客户,只认CPU不认性能

并且,有些客户还强调:

> 我们需要最新的CPU,性能如何无所谓。这样的话,计算的不好,谁都说不出来啥。否则,就会有人怪你,说买的老款CPU。

你说这咋办?

所以我一直强调,买服务器,买的是性能。不是买的CPU!!

就是同样的CPU。在我们调试后,原先跑80秒的算例,能跑到50秒,性能提升了1/3。

那还是一直有客户,只认CPU,认为CPU参数越流弊,性能越好,我怎么说都不行,这有啥办法?

但是我这面,还是会坚持走性能的路线。我也希望,咱们买高性能计算服务器的,改一改思想。咱们需要的是性能,不是CPU虚高的参数。

但依然有客户找我买服务器,上来就问什么CPU,也是没办法。

遗憾2:那些百万的HPC

目前手头没有成品的百万的HPC做测试。但在我们跟外部力量联系的时候,我们发现了很多事情。

HPC大厂的技术人员,竟然不知道可以通过bandwidth做带宽测试。同样,HPC大厂的技术人员,从来没做过scale测试!

HPC大厂的技术人员,在我们让他们做scale测试的时候,发现16节点加速比只有7!!

也就是说他们做交付的时候,只是能算起来,但从来没考虑过性能的问题!

我不知道他们一年卖出去几个亿的HPC是怎么交付的。或许,客户都不知道CFD高性能计算需要这么测试吧。反正配置上很流弊,还是老牌大厂,一切都很OK!

遗憾3:不信任

最后一个遗憾是,我还发现一个问题就是,一些人买了服务器,会对你产生不信任。

目前dell、曙光、联想应该是HPC大厂。我这面做的服务器,肯定跟大厂没法比。

尤其是在一50多岁大教授那里,他们从来不考虑小厂的服务器。只买大厂的。然而他们不知道,花8万块拿的服务器,还不如我这3万块的服务器。

相反一些年轻老师,倒是可以接纳我们这种新生力量。

The End

这件事情,我总结了一下,思考了一下。

咱们是做什么的,做CFD的。CFD高性能计算,基本上属于一个学科领域了。

在测试性能,研究算例的过程中,我们发现了非常多的门道,这简直完全可以发SCI出去。事实上,确实有很多SCI,在研究高性能计算。

很多硬件上的设置,比如缓存、频率、带宽、延迟,都对HPC有影响。那具体影响有多少?能否总结出规律。这需要系统性的研究。

在此之前,我一直认为,HPC大厂做的一定就是最专业的。现在,我撤回这句话。

我认为,做CFD高性能计算HPC,要找做CFD的专业人士,而不是盲目堆硬件,堆核心。CFD高性能计算服务器,与银行的服务器不一样!

我们以写SCI论文的高标准,把CFD高性能服务器的性能发挥到了极致。只有这样,才能接收到审稿人的蹂躏!

回头来看,我与A老师,在这几个月太折腾了。A老师白天经常讲课,专门在家里装了个摄像头,实时的看跑的收敛速度。每次都是讲完课,直接开车往回跑,继续弄服务器。有时候配件他那没有,我这没有,我就需要同城赶紧送,我就开车去,我俩住的还很远,每次相当麻烦。

有几度想放弃,真是不想弄了,时间太紧了,真是没时间弄

但总是心有不甘,没有追求到极致的性能,不甘心。

做CFD这么多年了,任何一个算法、任何一个植入,我从来没想过放弃过。

现在我们达到了我们的目标。

坚持,永不言弃。

Stay persistent!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
重新考虑数据中心的冷却方案—水冷却或将再次兴起
一篇文章入门HPC(高性能计算)
芯品来袭 | 英特尔史上最强单芯片来了!
AMD 超越摩尔定律之路
CloudStack架构详解(二)
十次方算力知识:如何看懂浪潮 、戴尔、惠普服务器命名规则和型号分类
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服