论文部分内容阅读
有效的资源管理和调度对于分布式计算来说是必不可少的,而对计算任务在不同计算资源之下的运行时间的预估是许多资源调度方法的基础。基于判例的预测技术是近年新出现的一种预估并行计算任务运行时间的方法,它通过在可控平台将原始程序运行一次,获取原始程序的通信日志,并根据日志重构出能够反映原始程序运行时间特征的,可按比例缩放的判例程序,最后通过判例程序在不同计算资源条件下运行的时间预估原始计算任务在该资源下的运行时间。由于这种方法对运行时间的预估是基于程序的实际运行,如果能够完善各环节,有希望比传统的基于建模分析的时间预估技术取得更加准确的效果,同时也能避免基于历史和基于建模分析的时间预估方法所受到的一些局限。因此,本文将这一方法的各个环节分解为一些子问题,对各个问题进行了研究。对于运行日志的获取,本文设计了一种获取并行程序运行时所有通信日志的方法,通过利用MPI库的PMPI接口,在MPI库源码中插入函数封套,在不改变原始程序,也不影响原始程序运行的情况下获取通信日志;对于运行日志的合并,通过研究集合通信与一对一通信的特点,本文设计了一种规整化并行程序通信日志的方法,在规整化的基础上设计了一种合并日志的算法。对于最核心也最困难的收缩日志循环问题,本文将问题转化为字符串的循环子串收缩问题,提出了一种基于后缀数组的算法,在理论和实际的时间性能方面都优于已有的最优算法;对于自动构建判例程序,本文解决了对计算时间与通信时间的可按比例缩放模拟,各类通信函数的参数补全等问题,设计了自动构建可执行判例程序的方法。本文设计了基于判例技术的分布式计算任务时间预估系统,并使用标准性能测试集程序NPB中的应用在可控机群平台进行了实验,使用基于判例技术的时间预估结果与应用的实际运行时间之间的偏差进行比较来验证上述各环节方法的有效性和准确性。实验表明本文设计的方法能够比较准确地预估计算任务的运行时间,对于同构机群误差不超过3%,对于异构机群误差不超过10%。