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

    浏览量

    6923
  • 数值计算
    +关注

    关注

    3

    文章

    5

    浏览量

    6867
收藏 人收藏

    评论

    相关推荐

    求助,关于opa842单位增益的问题求解

    请问opa842单位增益,但它在输出为100mv,带宽为14MHz时,增益能到10,那么我如果需要输出再大一些,这些指标不知是否满足,关键我现在已经把opa842放大十倍的电路做出来,换芯片还要重新绘图,望各位前辈给点意见???
    发表于 09-20 08:12

    做宽带直流放大器末级功放,前三级放大输出稳定波形,只要连接THS3091就会输出失真,为什么?

    什么问题引起的不稳定,怎么解决?首先可以确定的是不是因为相移引起的不稳定,因为测过输入信号和输出信号基本没有相位差;其次THS3091我是按照手册选的反馈电阻,十倍放大。TINA仿真图见附件。
    发表于 09-12 07:21

    INA333 RG接100欧不是放大1000吗?怎么输出才2左右?

    RG接100欧不是放大1000吗?怎么输出才2左右?请问要放大1000如何接才正确?
    发表于 09-11 07:25

    OPA657搭了数据手册中提供的放大十倍的测试电路,结果输出一直是7V多,为什么?

    我用OPA657,搭了数据手册中提供的放大十倍的测试电路,结果输出一直是7V多什么情况 , 求指教!!!
    发表于 09-05 08:21

    两级AD603放大电路不能放大到所需值,最大十倍,这是为什么

    两级AD603放大电路不能放大到所需值,最大十倍,这是为什么,用1M欧的示波器测得,没加功率放大级???
    发表于 09-04 06:48

    使用THS3201遇到的问题求解

    今天调试了一块THS3201的PCB,0.3MHZ~100MHZ,放大十倍,遇到了很多问题,虽然最后大致满足了要求,但是还有一部分问题没有想通: (信号源内阻50欧姆,示波器1M欧姆) 1.按照
    发表于 08-26 07:58

    请问FilterPro设计带通滤波器需要如何设置?

    带通滤波器设计要求:50~11000hz为带通信号,放大倍数为40(32dB),带通外的信号需要-40dB/十倍频程的衰减。 我的设置为:中心频率:(11000-50)/2=5475 通带
    发表于 08-16 12:14

    INA132u的两个输入端都有个90K+10K的十倍衰减电阻,会不会对采集的信号有影响?

    INA132u的共模输入阻抗只有80K,感觉输入阻抗不是很大。而INA132u的两个输入端都有个90K+10K的十倍衰减电阻,不知道会不会对采集的信号有影响啊。这是第一个问题。 第二个问题就是,如果我们对运放
    发表于 08-12 06:41

    opa380异常损坏,放大倍数衰减到百,不可恢复,为什么?

    在使用opa380时,经常出现原先正常工作的电路,突然信号值直线下降,输出信号衰减到百,但是变化趋势一致,不可恢复,更换opa380芯片后正常
    发表于 07-29 06:51

    众鑫创展----1080P十倍光学变焦摄像头方案

    OZ003是一款1080P支持十倍光学变焦的高清摄像头模组。由索尼200万像素高性能感光芯片,以及集成了高性能的ISP图像处理模块和视频压缩编码器的SoC芯片组成。具备优异的图像处理能力、极高
    的头像 发表于 05-11 16:34 410次阅读
    众鑫创展----1080P<b class='flag-5'>十倍</b>光学变焦摄像头方案

    众鑫创展----4K十倍光学变焦摄像头方案

    OZ080(FH8898+IMX415)是一款800万像素支持十倍光学变焦的高清摄像头模组,由索尼800万像素高性能感光芯片以及全高清实时高性能智能网络处理器Soc芯片组成。具备优异的图像处理能力
    的头像 发表于 05-11 09:38 422次阅读
    众鑫创展----4K<b class='flag-5'>十倍</b>光学变焦摄像头方案

    4K 十倍光学变焦摄像头模组OZ080规格书

    电子发烧友网站提供《4K 十倍光学变焦摄像头模组OZ080规格书.pdf》资料免费下载
    发表于 05-07 16:19 11次下载

    高盛谈HBM四年十倍市场 受益于AI服务器持续增长

    高盛谈HBM四年十倍市场 受益于AI服务器持续增长 AI需求爆发引发HBM存储水涨船高,高盛认为HBM供不应求的情况未来几年或将持续,高盛预计市场规模将从2022年到2026年前增长10;达到
    的头像 发表于 03-28 14:41 1024次阅读

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

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

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

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