第245章 团队扩充(1/2)
“能。”温卿回答得毫不犹豫。
“算法优化本身就是为科研服务的。我研究非平衡态模型遇到的问题,正是算法需要解决的典型问题。两边可以互相促进。”
钱老批准了这个计划。
在给温卿的批示中,他写道:“科学计算是科研的翅膀。翅膀硬了,才能飞得高远。放手去干。”
算法优化组很快成立,包括温卿在内共五人。
除了老王这个“编外顾问”,其他三人都是数学系出身,对计算数学有一定了解。
温卿把第一个攻坚目标定为:稀疏线性方程组的快速求解。
这是科学计算中最常见、最耗时的核心问题。
流体力学、结构分析、电磁场计算……几乎所有工程问题最后都归结为求解大型方程组。
“目前我们用的方法主要有两种。”
温卿在第一次组会上讲解。
“直接法,以高斯消元为代表;迭代法,以雅可比迭代、高斯-赛德尔迭代为代表。但都有严重缺陷。”
她在黑板上画出计算复杂度曲线:
“直接法计算量大,存储需求高,不适合大规模问题。传统迭代法收敛慢,甚至可能不收敛。”
“那国际上用什么方法?”
年轻组员小陈问。
他是清北数学系毕业的,理论基础扎实。
“预处理迭代法。”温卿写下几个关键词。
“不完全LU分解预处理、多重网格法、区域分解法。还有专门针对对称正定矩阵的共轭梯度法。”
她调出几篇英文文献的摘要:
“这些方法在理论上已经成熟,但实现起来很复杂,需要大量的数值实验和参数调优。”
“我们能看懂这些文献吗?”
另一名组员小李有些担心。他的英语水平一般。
“我来翻译和讲解。”温卿早有准备,“但更重要的是,我们要自己动手实现和测试。从最简单的共轭梯度法开始。”
接下来的一个月,算法组进入了疯狂的学习和编程状态。
白天,温卿讲解算法原理,带着大家读论文、推导公式。
晚上,所有人泡在计算机房,在“曙光-1”上编写和调试代码。
最大的挑战不是理解算法,而是如何在高性能计算机上高效实现。
“曙光-1”虽然比DJS-130快得多,但内存依然有限,只有512KB。
而一个中等规模的三维流场计算,生成的稀疏矩阵就可能需要几兆甚至几十兆的存储。
“必须用压缩存储格式。”
温卿决定采用CSR(压缩稀疏行)格式。
“只存储非零元素的值和位置信息,能节省80%以上的内存。”
她亲自编写了核心的数据结构和基本运算函数。
这是她在末世时掌握的技能——那时的计算机资源比现在更紧张,高效的内存管理和算法优化是生存的基本功。
第一版共轭梯度法程序在一个月后完成。
测试用例是一个1000×1000的对称正定稀疏矩阵,非零元素占比不到1%。用传统的高斯消元法,“曙光-1”需要运行三小时。用新开发的共轭梯度法程序——
“十七分钟!”小陈盯着屏幕上的计时结果,不敢相信,“速度提升了十倍!”
“还不止。”温卿指着收敛曲线,“你们看,迭代了120次就达到了精度要求。如果预处理做得好,迭代次数还能减少。”
“预处理”成了下一个攻坚目标。
本章未完,点击下一页继续阅读。