0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

“一亿”是“一千万”的十倍吗?显然不是

CAE学习之家 来源:恩宇科技 作者:CAE学习之家 2021-10-28 11:14 次阅读

-----1亿是1千万的10倍?-----

早期笔者使用矩量法求解线性方程组,在不使用快速多级方法,自由度达到3万时,台式机上已经无法求解出,8G的机器内存不够用。对于满秩矩阵的线性方程组,常规求解方法时间复杂度为n^3(n的3次方)。

对于自由度1千万以下稀疏矩阵的求解,好的台式机基本能应付,而当自由度达到1亿的时候,简单的将硬件乘以10倍完全不能满足要求。因为计算的空间复杂度,时间复杂度并不是线性,通常是NlogN,N^2或者更高。当自由度达到1亿时,不仅需要对硬件核心部件CPU,内存扩容,而且在磁盘阵列,I/O,并发计算,GPU网络,带宽等方面都提出了更苛刻的要求。

算法方面看,减少网格密度,在物理量梯度大的地方加密,无变化的地方将网格变稀疏,可以有效减少计算量;另外优化求解算法本身,使其更加易于并行化计算。

从目前来看,计算机硬件计算能力的更新速度,跟不上指数级求解规模的增加速度。这也是量子力学发展的最大推动力!

-----------------

针对该问题,本文稍微展开一下。

这里的1亿,主要指仿真中最终求解线性方程组的自由度个数,就是刚度矩阵的规模,即在方程Kx=b中,K的规模为1亿*1亿的方阵。

从硬件角度看,性能瓶颈首先在内存。目前台式机的内存普遍在64G以下。对于1千万的稀疏矩阵,存储勉强够用,加上计算,一般都不够用,在windows系统上如果内存不够用,会启用虚拟内存,也就是用页面交换把硬盘当内存使用,频繁读写磁盘,这时候性能会大大降低。而对于1亿自由度的矩阵,可能刚度矩阵组装都不够用。对于一亿自由度的矩阵,首先要保证内存能够存储,一般的方法是使用具有超大内存的工作站服务器。

内存问题解决后,再就是CPU性能。前面讲过,通常矩阵计算的空间复杂度,时间复杂度并不是线性,而是NlogN,N^2或者更高。使用单核单线程,耗费的时间是条曲线上升趋势。虽然稀疏矩阵采用了CSR等方法压缩数据,但自由度的平方数据仍然还是海量数据。现在的CPU普遍多核多个逻辑线程。这也要求在进行迭代法求解方程组时,合理的进行矩阵分解,参考一篇文章入门仿真软件性能优化,采用分治的方法适应硬件的需求。

这里需要注意的是单核CPU的性能以及CPU的数量。根据实际情况进行分治!

在满足了单机CPU运行之后,再就是集群分布式计算。采用多台计算设备,比如刀片等专业服务器,超算等等,这里需要考量的是负载均衡和网络带宽,即保证单台设备的利用率和整体进度保持一致。对于超大量的计算,最好能软件实现动态规划,对于频繁交换数据的计算,要注意网络带宽的瓶颈。

再从软件方面来看,根据笔者的研发经验,相当一部分仿真的性能问题可以通过软件以及改进算法解决。在前处理中,尽量避免软件中高频操作,大数据拷贝,大量细小数据操作等。如果必须有,对操作进行采样性能评估,保证在可接受范围内。在求解线性方程组前,提取矩阵特征,尽可能在最细度上根据矩阵特征,同时结合模型和业务的特点,选取最合适的求解方法。

其实目前对于数值计算方法而言,其算法都是公开透明的,商业软件之间真正较量的是业务模型的准确性,算法的稳定性以及效率。而这也恰恰是每个软件可以改进和提升的地方

2004年,ANSYS解出了1亿自由度的模型,2008年,ANSYS解出了10亿自由度的模型。即使现在来看,我们认为自由度超过1千万的模型是个大模型,所以1亿自由度的模型仍然可以认为是超大模型,且只能在超大的服务器上运行,可以想象,随着硬件的提升和算法的改进,实际应用中会有越来越多的超1亿自由度的模型求解。

回到开始的问题,“一亿”是“一千万”的十倍吗?显然不是。

最后还是以业内的一句话作为结束语:

“如果你的仿真还没有受到硬件的限制,那说明你的仿真还没有入门”。

编辑:fqj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAE技术
    +关注

    关注

    0

    文章

    8

    浏览量

    6895
  • 数值计算
    +关注

    关注

    3

    文章

    6

    浏览量

    6853
收藏 人收藏

    评论

    相关推荐

    敏芯股份:预期提升MEMS微差压传感器封测产能至每月一亿

    敏芯股份:为应对市场需求,将加大产能建设,预期提升MEMS微差压传感器封测产能至每月一亿
    的头像 发表于 04-01 11:21 226次阅读
    敏芯股份:预期提升MEMS微差压传感器封测产能至每月<b class='flag-5'>一亿</b>只

    STM32 ADC+DMA多路采集,使用DMA时,是不是要额外加上4的单次DMA传输时间?

    4通道采集时,按1-2-3-4-1顺序转换,一路通道的转换时间是(采样时间+12.5)周期,还是4 *(采样时间+12.5)周期?使用DMA时,是不是要额外加上4的单次DMA传输时间?
    发表于 03-26 07:44

    百度地图AI向导用户破亿,日均提供超千万次对话

    百度地图AI向导用户破亿,日均提供超千万次对话
    的头像 发表于 03-21 09:44 169次阅读
    百度地图AI向导用户破亿,日均提供超<b class='flag-5'>千万</b>次对话

    这个运放电路里这俩肖特基二极管的作用究竟是啥?做了仿真还是不明白!

    如果把D1、D2相关的电路去掉,那这个电路很好理解,绿色正弦波就是V3两端的输入波形,蓝色是运放输出端,做了个十倍衰减。 仿真里显示D1、D2流经pA级别的电流,几乎等于断路,这俩的作用我是真的百思不得其解!!!
    发表于 03-19 10:06

    交流电机直接起动电流一般都是额定的6-7,在这6-7的电流里面无功电流和有功电流是怎么分配的?

    一般交流电机直接起动电流一般都是额定的6-7,在这6-7的电流里面无功电流和有功电流是怎么分配的?如果无功电流占比大,是不是安装无功补偿器可以很大程度减少电机起动对电网的冲击?谢谢
    发表于 01-09 11:06

    用万用表实测电压,经过ADE7912输出值在32mV左右,相差十倍的原因?

    VM和V1P,用万用表实测电压是,330mV左右,但是经过ADE7912输出值在32mV左右,相差十倍;这个问题不知道在哪里?
    发表于 12-25 07:26

    用AD8605运放可是放大倍数跟我计算的不一样是为什么?

    我根据此图做的运放,可是放大倍数确是5多是怎么回事呢。应该是十倍才对
    发表于 11-24 08:24

    逆变高压,是直接用变压器好还是使用压电路好?

    想做个小型高压发生器,设计电压输出10KV,是只用推变压器还是变压器+压电路?如果直接用变压器,是不是会在内部击穿?
    发表于 08-27 21:56

    废品站淘到一堆旧零件,竟组装出一台“起重机”百十块成本翻十倍

    电子技术电子diy
    学习电子知识
    发布于 :2023年08月08日 00:38:25

    都说了不要购买低价电动电源,这块只使用个位数,内阻达到几十倍

    电路开关电源
    学习电子知识
    发布于 :2023年07月25日 22:32:54

    M482SE8AE VBAT电流过大的原因?怎么解决?

    M482SE8AE VBAT电流过大,比M450大几十倍,CR2032电池没几天就消耗完了。
    发表于 06-27 14:07

    482 怎么用三极管放大RC延时电路的延时量?轻松放大几十倍#硬声创作季

    三极管放大电路
    或许
    发布于 :2023年06月06日 10:35:42

    十倍,中国实现1200公里地表量子态传输#量子通信

    量子量子通信
    jf_97106930
    发布于 :2023年05月20日 09:37:27

    示波器测出的电压值比实际值小十倍是怎么回事?

    双轨迹示波器GOS-620 20MHz,海洋仪器厂的,表笔丢了现用300V、100M 10*的示波器表笔测电压,测出的电压值比实际值小十倍;测此示波器自身输出的2Vp-p 1KHz的方波信号幅值也是小十倍。不知道是示波器的原因还是表笔的原因啊。有知道的麻烦给解释一下,不胜
    发表于 05-06 16:03