导读:受仿真秀平台的邀请,7月10日,我将与并行科技的高级工程师、中国计算机学会高性能计算专委会委员郭宇老师在2020仿真知识周(第五场)来分享《仿真工程师和企业的高性能解决方案》。推荐报名参加,以下文章是我7月9日凌晨5点完成原创文章,愿以此文,与人共勉。
笔者第一次接触电脑,是20多年前的小学时代。当时学校教大家286电脑和DOS操作系统的使用。曾经的我,用DIR命令给更加懵懂的同学展示,电脑刷屏的快乐、有时也把5.25寸软盘,塞满了无数新建的多级目录,被老师勒令逐个删除,却默默将软盘扔进垃圾桶、或者把它用作看日全食的滤光片、有几次搞怪,用format命令干废了学校旁边一个电脑房的系统,只因新老板在计算我们上机打游戏的时间,变得更加苛刻。
图片来自网络
一直到2010年自学有限元之前,笔者都把电脑当个打游戏的玩具,或者打字写WPS的一般工具,从来没因为“计算”问题,劳烦过电脑性能。直到2010年Solid Works的仿真模块以及2011年ANSYS结构模块的应用,把本来性能中等的笔记本CPU与内存用到了极限,以至于多次抓狂,因为速度太慢或者根本没法计算的痛苦后,才真正体会到,原来计算机还有这操作。但是,笔者与仿真软件斗争的历史,就是不断升级电脑硬件,不断追求更高更快更强的血泪史。
从2009年在国企自费5000块钱购买双核心(注: 本文所有核心,均代表物理核心数量,不考了因为HT技术产生的虚拟核心。如果考虑,用词是“线程”)t6600处理器的笔记本,成为设计部的一朵奇葩,用于机械设计工作。到接触有限元以后,其内存容量从2G,升级到6G再到硬件极限的8G,依然感到不够用。又过了几天成为一个重要的转折点。当时计算一个模态分析,70小时内存满负荷CPU使用率5%,硬盘满负荷跑到蓝屏死机,又重新计算80个小时才得到结果。
痛定思痛,天师说要有光,要上固态硬盘。2012年花费1050块钱,买了一块Intel公司330系列的120G固态硬盘,直接让计算时间缩短到5小时左右。
这次经历让笔者充分意识到,高性能计算需要协调最慢部件的性能瓶颈,才可以充分发挥总体效率,又一个木桶效应的现实案例。因为笔记本硬件极限内存只有8G,而这仅仅是ANSYS推荐的最低配置要求。笔者常遇到因为内存不足,无法计算或者自动调用虚拟内存,让仿真速度减速10倍的窘迫(当然很多时候也是能力不足,无法充分节约计算量的原因)。
到了2013年,在搜寻无数硬件评测文章的基础上,组装一台4核心志强1230V2处理器16G内存120G固态硬盘的台式机。一年后等内存价格稍微正常点以后,升级到了32G,组成电脑配置的完整体。
综合来看,内存容量是直接决定能不能计算的,一票否决性的核心问题。在可能的前提下,尽量提升内存是最有性价比的选择。毕竟一个烂的计算结果,也永远比因为无法计算,而0输出要强得多。
这里补充一个超线程技术的问题。仿真软件只开启一个任务,就可以把电脑的全部性能,都吃到天翻地覆慨而康。这严重不符合超线程技术,加速同时运行多个程序速度的应用场景,而几乎全部电脑都默认开启该技术,那么关闭它就是更有效率的选择了。经笔者测试,关闭后可以让总体计算时间,缩短0%-5%。别看这一点点的差距并不大,其属于一劳永逸式的操作,相当于一次设置就永久性免费升级电脑硬件性能,何乐不为。其关闭设置在不同电脑上操作接近,但有一定差异,建议上网搜索具体方法。
对于仿真分析,反而是显卡就不那么重要了。
因为仿真用的模型,大部分经过极致简化,其复杂度和光影效果对显卡性能的需求,大部分情况下可以忽略不计。当时买台式机为了省钱,如果是买CPU内置显卡的型号,XEON 1235则需要加一百块钱。笔者的选择是,用70块钱买了一款2008年的256M显存的Geforce牌9600GT显卡,又花30买了个最破的散热器。
除非要处理几千万上亿网格,大部分情况下一款很差劲的显卡足够用了。笔者的二手显卡,在不超过500万网格的结构计算下,基本任何情况无卡顿存在。
到了2016年,那一台V2版本的CPU性能显得比较老旧。2009年笔记本却老当益壮,创造过16.0版ANSYS软件,从点安装到程序正常打开,耗时500秒的新记录。再次感慨固态硬盘的速度优势。
又一顿上网搜罗各种测试文章,最后定位志强E5-2696V2版本CPU的双路24核心48线程工作站。
因为V2版本搭配DD3带ECC的REG内存,其价格是V3版本CPU使用DDR4普通内存的3折左右,极具性价比。以至于相同预算下,损失10%总体性能,却可以买到大一倍容量的64G内存,后来升级到76G。
本次是笔者第一次购买测试版CPU,其相对量产正式版3折的价格,性能一样,吃起来极香。
测试版CPU的来源是上世纪90年代,Intel公司奔腾CPU浮点运算错误事故,造成百万美元损失后的新策略,其在正式型号上市之前,分发一定数量测试版未成熟的CPU,进行各种应用各种场景的使用验证,从而发现问题修改设计。其非官方渠道的价格,是上市后相同型号正式量产版的1.5~4折。该价格如此的惊喜,以至于可能颠覆很多人对CPU价格体系的认知。笔者强力推荐。
缺点是存在潜在不稳定和不兼容问题。解决方案是在质保期内,充分测试,大不了退货换一家买。
一如既往的,显卡依然是98块钱的二手最低配置的专业显卡Quadro K420,用它应付几百万网格毫无压力。偶尔计算一千万网格的流体计算,才略有卡顿。从此再也不因为内存不足,无法做细致的计算。虽然最新的电脑是160G内存,可以更随意更土豪一点。
自从换了工作站,性能显著提升,就有机会做一些以前没做过或者非常浪费时间的那些计算项目练手。当然,仿真软件的版本,也从最开始的12.1几乎每年一次更新的一路升级到最新版。
虽然没有十分精确的对比,不同版本计算速度的差异,但是随着技术的革新,即使相同项目,采用更新版的软件,也可以更快更容易的完成。其相当于变相的升级了电脑硬件性能。所以如果有可能,建议尽量用最新版或者3-5年内的新版软件。毕竟人的时间是最重要的成本,高效率的硬件和软件,给用户提升的效率和节约的时间,就是在购买自己的生命。让用户有限的生命内,比别人进步成长收获的更多。
时间走到2019年,随着对硬件性能和计算效率更大更多的需求,自费两万采购测试版志强8124处理器和160G内存(买了192G内存但是一个插槽损毁)搭配三块固态硬盘与二手高端专业显卡的工作站再次降临。
在上一台24核心工作站之中,为了展示笔者DIY精神,采购了养鱼用的静音水泵,搭配本田思域汽车发动机散热器的软管水冷系统,成了仿真界一道跑偏的风景线。本次更新电脑,为保证简单方便,回到了风冷方案,但是散热器和导热硅脂都选择业内几乎最贵最强型号,因为CPU的功率,也是同级别世界顶级的240W。
三块固态硬盘仿真时读写500~800M/s性能,确保了极致的读写性能和不同计算需求的搭配。测试版CPU以4000块钱的价格,买到18核心3.3Ghz,相当于正式版志强8124的35000块钱性能。论测试版CPU的1.5折性价比神话?
二手Quadro K6000显卡为几年前最高型号。其打破了笔者一贯的,只用最破显卡的魔咒。因为准备尝试ANSYS AIM和Live的新技术,并且顺便尝试GPU加速的感觉。
虽然因为忙AIM没用几次,但是GPU加速测试后,发现一个令人沮丧的结果。
对比了不同计算量、计算模块、是否开启GPU、不同核心数量时,求解时间的变化规律,发现GPU加速开启与否,对于结构计算一点也不香。建议大家不考虑这个方案。
理由有,必须高端GPU甚至特定型号才可以,而大部分人用的打游戏显卡,Geforce牌任何型号无论价格都无法使用(ANSYS Live除外),而这些GPU新品价格普遍一万块以上甚至十万级别,而对应对仿真速度,并没有明显加速效果。一般提升10%左右,甚至很多时候反而减速10%-30%,极端情况减速300%,那么大价钱采购的硬件,成了GPU减速卡不是非常讽刺了。
最近几天,为了再次提升10%的效率,又将8124处理器,更换为新一代志强8272的26核心3.2Ghz功率205w。同样花费4000块钱,买到40000块钱正式版8272的性能。测试版XEON的性价比,似乎秒杀任何其他公司,其他型号其他品牌的产品(AMD NO?)。这时候要大喊一声ES XEON YES更合适吧。
当然,搭配志强3647接口的主板价格,普遍2000块钱以上,对于预算紧张的用户,性价比不够好。笔者推荐低端配置中,使用测试版I9-9900,其拥有8核心4.3Ghz性能与一百多瓦的功率和低至1500块钱的价格,再搭配400块钱的主板,外加一百块钱散热器(这社畜一百块都不给我?),总价2000快,可以满足绝大多数需要。
除非计算规模超大,以至于该CPU最大支持64G内存不够用。而且因为核心少,仿真计算效率很高,拥有无与伦比的性价比。反观第十代I9的性能提升有限,搭配主板的总体价格贵了很多,不值得推荐。
这里分享一个选购CPU的小经验吧。
首先定调调,西方超级计算机的龙头企业,克雷公司创始人西蒙·克雷,说过一句名言:你要犁过一块田地,是选2头壮牛还是1024只小鸡?
根据总体电脑预算,拿出4成左右比例采购CPU。以这个为基准在网上,大致搜索类似价位下,所有可选CPU��号,然后按照耗电量从大到小排序。
笔者坚信一个理念就是,在人类的CPU技术暂时没有黑科技和穿越剧的今天,功率就是战斗力,耗电量就是性能。费电的CPU一定是好CPU,省电的CPU一定性能不太好的原则。
重点选择类似价格类似架构下Top3功率的CPU型号。而仿真软件普遍多核心加速,存在一个性能损失的问题,一般来说结构计算8核心以内,计算时间基本随着核心数量线性相关;8—16核心加速效率在0.7左右,即核心2倍总体速度2X0.7=1.4倍左右;而16—32核心逐渐加速效率下降,直到毫无加速。这意味着其他条件不变,增加核心数量几乎不提升总体速度。
建议对于结构仿真,核心数量越少越好(AMD胶水CPU的64核心哭晕在厕所)。
由于多CPU互连时,有通讯产生的信号延迟现象。在CPU和主板总性能和价格不变基础上,2个弱鸡CPU的实际性能,大概是一个顶级CPU方案的9成。也就是说,对于结构仿真花费更大价格购买双CPU主板和两个CPU及其散热器的性价比,明显不如单颗CPU的方案。
考虑到结构仿真的多核心加速比极限,基本就是30个核心,一颗高端CPU足够应付。除非经常性的同时计算2-3个任务,否则单CPU方案是更有性价比的选择。
综合以上对于结构仿真,总结一下:
功率最高者性能强;
核心最少者��天下;对于固态硬盘,不是买不买而是买多大买多快的事情。对于显卡,最破的足够了,除非模型非常复杂,网格数量上千万及以上。
本文从笔者的计算机和仿真软件使用经验方面,分享了一些小故事和小感想,希望能有所帮助大家,更好的提升效率,加速成长,让自身有限的生命中,打败更多潜在竞争对手,并修筑能力的护城河,不被侵犯和跨越。
受仿真秀平台的邀请,7月10日,我将与并行科技的高级工程师、中国计算机学会高性能计算专委会委员郭宇老师在2020仿真知识周(第五场)来分享《仿真工程师和企业的高性能解决方案》,点击下方图片回看
总之,中国人有句老话,逆水行舟不进则退。当别人都在进步的时候,更智慧更努力更高效率的成长,是被迫的选择。毕竟,人性懒惰,如非一无所有,谁愿一身才华。愿以此文,与人共勉。
2020仿真知识周精品好课推荐