|
|
|
二维非线性对流扩散方程求解程序的测试与优化
|
|
【小学计算机教学论文】二维非线性对流扩散方程求解程序的测试与优化摘要:在IA-64架构Itanium2处理器上,应用gprof和pfmon对二维非线性对流扩散方程求解程序源代码进行了性能测试。在分析给定程序的数据结构,子过程调用关系,重点子程序中循环体的迭代空间、数据空间、访问轨迹,输入输出数据量大小和程序结构等的基础上,应用子过程合并、循环变换、分支消除、循环顺序逆转、数组一维结构化为二维结构、输入参数给定等方法,改善了数据访问的时空局部性,程序性能有15%的提高。 关键词: 程序性能优化;,数据局部性;循环变换;数据变换 1 引言 求解由实际问题数学物理建模得到的复杂偏微分方程是大规模,长时间的数值计算问题。为了提高问题求解效率,满足应用需求,除了研制高性能计算机,针对目标问题构造好的算法外,还要对高性能计算软件进行性能优化,以充分发挥机器的计算潜力。 2 二维非线性对流扩散方程求解程序(BNLAG2D)模型 BNLAG2D程序用于行求解二维非线性对流扩散问题,所求解的非线性不稳定扩散方程为: 其中, f、a0、a1、a2、c1、c2、d1、d2、e、g为矩形域上由DIRICHLET边界条件定义的常数。离散格式为五点全隐式,采用非线性代数方程组解法器,包括牛顿局部线性化和稀疏线性方程组解法器(对角预条件QMRCGSTAB方法)进行求解。程序的主要计算量集中在用QMRCGSTAB法求解稀疏线性方程组。为便于测试,在程序中设定计算6个时间步,每个时间步中线性方程组求解的迭代次数为2500,即线性方程组求解的总迭代次数为15000次。 测试环境为IA-64系统,主频为1.4MHz的Itanium2。内存大小是8107MB[1]。各级cach情况如表1所示。 3 源代码分析 表2给出了应用工具gprof对程序进行测试的结果,可以看出子程序pqmrcgstab、mvmi1p2d、pr2d1p2d和prod1p2d是重点子程序,现主要对这些核心子程序中的数据
|
|
|
|
<<<<<全文未完>>>>> 全文字数约3803字
|
要阅读全文请先注册成VIP会员!详情请阅读会员专区!
VIP会员可以阅读全文, 欢迎加入VIP会员专区! 加入VIP会员步骤如下:
注册用户名→在线购卡
|
|
|
|