只提升计算机硬件的性能是不行的,必须要从根本上降低算法的复杂度。

这是因为待求解问题的最大规模也会伴随计算与存储硬件性能的提升一同增长。此时,如果算法的复杂度不能控制在线性或者对数线性的水平,问题规模的增长就会抵消硬件性能提高带来的效率提升,最终反而是计算时间变长以至无法接受。

当然,如果问题规模保持不变,用更好的硬件设备肯定能让计算时间缩短。不过,这也意味着不能充分利用所有的硬件资源,是一种浪费。同时,根据安迪-比尔定律,人们对于模型细化程度和计算精度的需求是永无止境的。这就像是现在的操作系统与应用软件比十几年前的产品复杂和庞大很多,但系统启动和软件运行并未感觉比以前有数量级的提速。

有限元算法因为先天地采用了稀疏矩阵,大体不用担心上述复杂度的问题。而边界元算法中的矩阵是满阵,存储与计算复杂度会达到平方甚至立方,这就是为什么我和大学同学在该算法的开发中花大量时间实现和优化矩阵压缩技术,以达到上述对数线性复杂度的要求。只有如此,才能够让边界元算法从书本走向现实,由演示代码升格为生产力代码,从而真正具有工程实用价值。