CFD服务器与我的产品观




我的产品观

服务器的定位就是:提供给CFD这个小圈子,少量的极高性价比的服务器服务器并不适合做别的。比如打游戏、做AI、服务器并不合适。同时,服务器相对于其他服务器的优点也是:更适合CFD计算。现存的服务器为了更大的销量,做的非常普适。但不一定适用于CFD计算。相反,CFD计算苛求的一些硬件,往往被忽略。同时,现存服务器出货量巨大,售后、售前、广告、技术都需要大量的资金投入。导致服务器成品,价格非常高。我在18年入职某高校后,采购了一台配备28核志强金牌的某大品牌工作站,花费了我7万多元。服务器不仅仅价位比这个低,还具备更强劲的算力。

服务器这面销售额,我和老贾的目标是500万/年。当然利润要小的多,跟我公众号做广告的收益大体持平。实业利润率就是低。至于我为什么要找老贾一起做。2个原因:

1. CFD产品线的拓展。从产品角度来说,我的产品一直以来都是知识类。这是把鸡蛋放在一个篮子里,是一种危机,意味着我把一切赌在了我的脑袋上。做服务器,涉入实业,算是CFD相关产品线的拓展,一种CFD产品全业态的构建。2. 拓展收入。毕竟科研不赚钱。

但是服务器不能当做我的核心业务。这部分业务主要由老贾负责。也无非:

1. 做服务器我没有核心科技。做CFD流弊的人多了去了,但大多在高校不能一展拳脚。CFD公司也很多,但大部分不做科研略显单薄。我属于比较特殊的游走于阴阳的人,重算法轻应用,算是沾点核心科技。但做服务器,CPU我生产不了、主板生成不了、连机箱我也生产不了,就算售后,我也只有一个人。在服务器这块,没有核心科技,杀不过别人,不能当作主业。其实10年前的小米也是这样,但为什么到今天做到这么大,我也在思考。

2. 刚入局、要低调、不能扰乱市场。在我联系过上百个供应商之后,A总告诉我:抢人利润如杀人灭口。如果拼价格,这是搅乱市场。我向来心软、与世无争,因此并不打算涉入这种商战。但既然我曾经吹过牛:做服务器的小米。想不惹火烧身。前期几年只能流出少量服务器,这样其他大厂才不会找我麻烦。

3. 我个人对服务器业务兴趣不大,并且没时间弄,服务器远没有研究CFD中的高阶格式有意思。

关于算力

在介绍服务器之前,首先需要了解一下CFD的运行原理。计算机求解偏微分方程组是CFD的核心。比如下面的方程:

\begin{equation}\notag \nabla\cdot\bfU=0, \label{C} \end{equation} \begin{equation}\notag \frac{\partial \mathbf{U}}{\partial t}+\nabla \cdot (\mathbf{U}\mathbf{U})=-\nabla \frac{p}{\rho}+\nabla \cdot(\nu \nabla \mathbf{U}), \label{mom} \end{equation}

对上述方程进行离散之后,会形成一个大型的稀疏线性系统,长下面这个样子:

图中的黑点表示非零元素,网格越多,图中矩阵的阶数越高。正常人用笔算,算个3-5阶差不多了。对于几百万阶的矩阵,必须使用计算机进行求解。所以,高性能计算机,就是用来求解上面这个矩阵的。图中左侧的矩阵被分为三块,这就是CFD中的decomposition 算法需要处理的。一般来讲,核心数越多,计算的越快。但是,也存在着很大的误区。

核数越多不一定是最优选择

这主要是因为计算机的并行效率并不是线性的。下图是针对200万网格算例,采用开源CFD软件OpenFOAM,针对志强某处理器进行的并行测试。很明显,在8核之后,并没有呈现一个线性的效率增加。甚至,24核与64核的计算差异,不到10%。为了区区不到10%的计算增益,要多花几万块钱,属实没必要。



那么,在并行计算中,每个核心到底分配多少网格呢?很遗憾并没有普适性标准。下图是前人针对大量算例,做的一个测试 (Jamshed, 2018)。可见,不管是多大型的算例,为了达到最高的计算效率,每核心可分配在15000-45000个网格单元左右。2015年,在一个1.4亿网格的多相流模拟中(Chen et al., 2015),作者们大约使用了30000网格/每核。那么是否可以认为,CFD计算每核心分配3-5万个网格单元是安全的呢?



好像问题并没有那么简单。2007年,Kaneda and Yukio在一个周期网格的DNS中,总共使用了68719476700个网格点,调用了5120个计算核心,每个核心分配了高达1300万网格单元!同样的2007年,Wissink and Rodi调用了39万网格每核心来计算分离流。转而,2016年,Zhang et al. 调用3600个核,计算1600万网格的燃烧直接模拟,每核心只需要处理4000个网格。2020年,Bna et al. 的工作中,每核心调用22000至13000个网格,并认为每核心调用20000个网格是最优的。所以,貌似,如果不差钱的情况下,每核计算3万个网格是比较好的。但这样的话,300万网格就需要300个核心,并不现实。

CPU架构往往被忽视

另外,CFD的架构往往被忽视。看Intel/AMD那么多的CPU,一些主频高,一些核数多,一些缓存大。很难选出合适的处理器。这里面往往存在门道。例如,一些CPU的定位,就是针对游戏玩家。但这种CPU用来做CFD计算到底如何?下图是两款CPU的对比,红色款在单核计算的情况下,计算效率远远低于黑色款,但是在6核并行的时候,红色款反超黑色款。因此,红色款明显更适用于CFD并行计算。

即使同样的核数,效率也差距明显

很多人问,停产的志强E5和在售的志强金牌,都是12核,有差异么?我们CFD中文网的用户亲自做了测试,结果非常大。同时可以看出,如果同时调用6核心进行计算,i7-97系列处理器(游戏旗舰),在进行CFD计算的时候,反而效率靠后。再一次认证了,CFD计算,在CPU的选择上要慎重。



内存配置错误

说内存重要也对,不重要也对。首先看内存用于干什么。在用计算机解方程的时候,如下图所示,矩阵中的元素(黑点部分)要进入内存单元存储 (Saad, 2003)。黑点越多,需要的内存越多。在应用数学领域,大量的人在研究需要对稀疏线性系统进行处理来获得更小的系统带宽以及元素值 (Vab der Vorst, 1992、Cuthill and Mckee, 1969)。这是从算法上对计算进行优化。在上个世纪末期,由于内存存储的限制,很多算法为了解决这一痛点被相继提出。


更暴力简单的方法,就是直接增加内存存储。得益于计算机的发展,目前内存已经完全可以应付。那么,对于一定数量的网格,到底需要多少内存呢?业内大体上认为每百万网格需要1-3G内存左右(Jamshed, 2018)。这其中还涉及到CFD中的高阶精度格式,格式/精度越高,往往占用的内存越多。但按照前述理论,即使500万网格,也最多需要15G内存。因此,目前CFD高性能计算,内存总量不需要过分担忧。


另外,内存带宽以及通道数却和CFD并行计算直接相关。在上图中,通过并行分解算法,对网格进行分区后形成上面的线性系统。很明显,对于最下方的分区,需要和红色区域的值进行通信。这种CPU之间的通信速度,以及内存带宽、以及通道数,也直接影响CFD的计算效率。

其他大体不需要考虑

这里的泛指显卡、硬盘、电源、阵列卡之类。显卡,CFD一般用不到。硬盘加一个固态就好。现有的服务器,往往在这些配件上,配置了过剩的资源,却对CFD计算毫无帮助。

服务器

服务器主要分俩款,第一款叫DM1,第二款叫DM2。DM1(30-40物理核心)售价约25000元(待定),DM2(40-60物理核心)售价高一点。目前正在进行性能测试,不管是DM1还是DM2,都要比我之前购买的7万元服务器更快,且更便宜。

DM1 DM2 备注
处理器 测试中 测试中
内存 测试中 测试中
硬盘 500G固态硬盘
2T机械硬盘
500G固态硬盘
4T机械硬盘
固态用来运行求解器
机械用来写数据
散热器 顶级风冷 同左 顶级风冷可媲美顶级水冷
同时维护简单
其他 显卡+机箱+电源 同左
系统 预装OpenFOAM-8与
OpenFOAM-v2006
同左
稳定性测试 超频至最高
100%运行测试7*24小时
同左

服务器采用预定的方式进行。2020年下半年会走一批货。目前我们正在与供应商谈合作。我们还发现,CPU硬件产品就像炒期货,一天一个价,心惊胆战。一些配件甚至跟比特币价格相挂钩。并且由于疫情工程停工,还缺货严重!很多供应商3天前还有货,3天后就没货了。很不靠谱的感觉。另外我们还需要处理很多其他问题:比如定金风险、运输问题,连地方都要现找,一台服务器装箱后大约半立方米,上百台竟然没地方放。不过这也让我们更深入的了解了实业的情况。

所有这些问题,CFDer都不需要考虑。售后问题,我们计划是n年有问题换新。毕竟在CFD这一行混这么长时间了,不能因为售后砸了名声。其实我一直很难相信自己要做服务器,因为做实业太压资金了,成本高、风险大。做CFD咨询,我个人的时间一天最多就是24小时,要找一个能跟我做一样活的人也很难找,一年能做的盘子撑死就那么大。但做服务器,通过组建团队,没准可以有些新出路。

因为之前在朋友圈发了几次消息,大家都在问这个是不是泡汤了。这个文章就是给大家一个交代。因为最近由于比特币大涨,CPU主板一天一个价,搞得我们也懵懵的。供应商们说9月份价格应该会落下来。因此,10月份应该就可以给大家交货了。

服务器这面我负责算力测试与统筹规划,售前售后由老贾负责,老贾是dyfluid团队全职负责服务器业务的人员,向我汇报。我个人实在没时间回复大家的各类咨询,非常抱歉。后续我会把老贾联系方式告诉大家。老贾随时可以给大家提供售前售后服务。

近期有购买服务器计划的,可以持续关注一下我们的消息。有新进展会在dyfluid.com和CFD界发布通知。也多谢大家支持我的实业产品线 :-)

东岳流体 2014 - 2020
勘误、讨论、补充内容请前往CFD中文网