我们做大模型多工况的数值模拟的时候,很多时候面临着Flac3D计算太慢,计算时间过长的问题,有时候几天都算不完,是非常被动的事情。下面给大家分析一下Flac3d计算速度和什么有关系,怎么样提升Flac3d的计算速度。尤其涉及到模型很大,网格数量多,动力学分析或者流固耦合或者Pfc3D耦合的时候,计算时间更加长。
一:Flac3D计算速度与什么有关系
1、Flac3D的计算速度和CPU的多线程计算有直接关系,比如一个i9-9900k肯定比i7-6700计算同样的模拟的话可以提升差不多一倍的速度,详情看cpu天梯图。除了CPU,还有数据读取速度,比如保存sav(f3sav)或者调取网格数据的速度与ssd硬盘速度有关系,计算的数据缓存和内存有关系,ddr4 3000hz的肯定比ddr3 1333hz的厉害。但是除了这个之外,还和下面的有关系。
2、下图是一般计算的时候Flac3D的交互视窗,里面分别有很多东西,一一分析,第二行的:cycle就是我们的step,计算步数或者迭代次数,totol就是几个solve的总数,后面就是是时间步timestep,这个是根据显式积分或者隐式积分计算机自动或者手动设置的时间步,和网格大小,模型参数有关系,再下去就是平衡条件,图片是用户设置的计算时长和现在计算时长(有时候是不平衡力比率,这个是solve之前我们定义的平衡条件,有时候用时间,有时候用不平衡力比率),最后的现实生活的电脑时间,比如计算了60分钟就是60分钟。有一点误区是:我们设置了软件计算10s,因为计算机性能差异,可能最后的现实时间不一样。但是时间步X步数cycle=等于预设的时间time。第一项乘以第三项就等于第四项。
3、现在看第一行:第一个有问号的 :determinism on 这个是确定性模式,模式是打开的,在Pfc3D耦合的时候是默认关闭的,这个对计算稳定性和准确性是做了一个控制的,若关闭了,可以提升一点计算速度,但是结果可能不稳定。关闭方法见下如:菜单栏Tools里面的options打开此对话框。
4、第一行过去就是:Threads:16 。这个是Flac3D并行计算核心数数量,现在表示16线程,八核处理器。这个默认是全开的,有时候有些cpu用双核计算可能更快,这样子可以在命令流editor或者dat文件里面model new之前之后加一行代码:program threads f (f是整数数字,必须小于或者等于你电脑的核心线程数,怎么看自己电脑核心线程数自己网上搜一下,这里不赘述了)
二:更改视图刷新频率增加计算速度
1、一拍绫仑懿旦打开了plot view窗口(不打开也会默认有),那么对话框的第一行最后的代码:Update interval 100(默认值是100)就讵畿缤耒会设置每cycle步数100steps就会刷新一次显示,这样子看上去是显卡的工作,其实也是走cpu线程的,若我们仅仅是为了计算得到一个f3sav结果文件(比如第一次平衡),不关心过程不需要出图集做gif或者video的话,完全可以把这个更像频率改大一点,这样子对计算速度是一个很大的提升,亲测大概在40%的提升。
2、具体设置在:菜单栏,tools / option/ plot 里面的update interval 里面,设置好了apply或者ok即可,注意:计算过程中也可以进行设置,不需要等计算完成等等待。
三:CPU性能设置提高计算速度
1、现在市面上很大的cpu都可能是低压或者可以睿频的,默认可能是节能(电池优先)模式的,那么可以在控制面板里面找到电影设置,可以打开高性能模式,很大的笔记本可能都有自定义的设置,Windows10直接可以拖动进行设置。
2、打开了高性能模式面临两个问题:电池消耗快和电脑温度过高的问题。那么就要我们打开风扇的主动降温。尤其笔记本问了安静,很多时候风扇是不转的。
四:总结
1、Flac3D的速度快慢大体可以归结为:CPU等电脑硬件限制,这是最基本的。第二,就是网格大小和网格优化问题,大型网格迭代起来时间周期长,平衡时间长;第三,电脑性能模式,高性能还是节能模式;第四,Flac3D工作对象,是渗流的,动力学分析还是静力学问题,都有很大的差距;第五,自定义的时间步,在隐式积分里面需要手动设置时间步,显示积分也可以自定义时间步,过小的时间步在一样的设置平衡条件下需要更多的计算步数,也就是cycle或者step;第六,Flac3D的版本对cpu多线程的计算或者优化是有差异的,大体上Flac3D6.0计算速度在并行多核心计算是Flac3D5.0的三倍,3.0的一百倍。4.0没有测试过。7.0目前还是测试版,速度还没有上去。
2、即使计算时间长一点,软件稳定的话,还是可以在计算完成的sav(f3sav)保存的结果文件或者记录的History进行分析的,但是要几个月或者几年的计算量建议升级电脑或者优化模型或者计算流程,这样子才是稳妥的办法。谢谢大家,希望对大家有帮助。