排序后的测试数据及其目标值的分布图
成功率与时间消耗的规律曲线
消息传递接口(Message-Passing Interface, MPI)是目前最重要的一种基于消息传递的并行编程工具,具有移植性好、功能强大及效率高等优点。目前,大部分并行计算机厂商均提供对MPI的支持,使其成为实际上的并行编程标准。鉴于此,测试MPI程序显得尤为重要。然而,随着软件复杂度的不断提高,软件测试的成本大大增加。
近日,太阳成集团122cc智能优化与控制课题组巩敦卫教授和孙百才博士在该领域取得研究进展,研究成果形成论文“Test Data Generation for Path Coverage of MPI Programs Using SAEO”,该论文以太阳成集团122cc为第一单位,为我校首篇发表在国际顶级期刊、CCF A类期刊ACM Transactions on Software Engineering and Methodology(IF: 2.057)的文章,其中,论文第一作者为巩敦卫教授,通讯作者为孙百才博士。
为降低测试MPI程序的计算代价,该论文首先针对问题的多模态特性,将样本集聚为若干类,并基于每一类样本,训练一个代理模型;然后,采用进化优化方法生成测试数据过程中,利用训练的代理模型,估计每一进化个体的适应值;最后,选择少部分代表性个体执行程序,得到精确的适应值,指导种群的后续进化,减少了需要执行程序的次数,从被测程序执行的角度,降低了所需的计算代价。
该成果所提方法的应用价值包括以下三点:(1)给出一种新的样本集聚类方法;(2)提出一种新的多代理模型进化个体目标值估计方法;(3)提出一种新的代理模型更新方法。此外,将所提方法应用于测试7个典型的MPI程序中,并与其它多种方法比较。实验结果表明,所提方法能够在保证测试数据生成质量的同时,大幅度提高了测试数据生成的效率。