您现在的位置是:首页 >动态 > 2020-12-09 09:00:09 来源:

计算机科学家设计了一种工具来识别由软件更新引起的错误源

我们都共享了挫败感-旨在使我们的应用程序无意间运行得更快的软件更新最终却恰恰相反。这些错误在计算机科学领域被称为性能下降,由于定位软件错误通常需要大量的人工干预,因此修复起来非常耗时。

为了克服这一障碍,德克萨斯农工大学的研究人员与英特尔实验室的计算机科学家合作,现已开发出一种完全自动化的方法来识别由软件更新引起的错误源。他们的算法基于一种称为深度学习的特殊形式的机器学习,不仅是交钥匙的,而且是快捷的,可以在几小时而不是几天内发现性能错误。

计算机系助理教授阿卜杜拉·穆哈希德(Abdullah Muzahid)博士说:“当错误逐渐蔓延并导致速度下降时,更新软件有时可能会打开您的大门。对于使用不断发展的大型软件系统的公司来说,这个问题甚至更加严重。”科学与工程。“我们设计了一种方便的工具来诊断性能下降,该工具可与所有软件和编程语言兼容,从而极大地扩展了其用途。”

研究人员在12月的神经信息处理系统会议记录中,在第32版“神经信息处理系统进展”中描述了他们的发现。

为了查明软件中的错误源,调试器经常检查中央处理单元内性能计数器的状态。这些计数器是代码行,例如,监视程序如何在内存中的计算机硬件上执行程序。因此,在软件运行时,计数器会跟踪其访问某些内存位置的次数,其停留时间和退出时间等。因此,当软件的行为出现问题时,计数器将再次用于诊断。

Muzahid说:“性能计数器给出了程序执行状况的概念。” “因此,如果某些程序未按预期运行,则这些计数器通常会显示异常行为的迹象。”

但是,较新的台式机和服务器具有数百个性能计数器,因此几乎不可能手动跟踪其所有状态,然后查找表示性能错误的异常模式。这就是Muzahid机器学习的用武之地。

通过使用深度学习,研究人员能够通过减小数据大小来同时监视来自大量计数器的数据,这类似于通过更改其格式将高分辨率图像压缩到其原始大小的一小部分。然后,在较低维度的数据中,他们的算法可以查找偏离正常的模式。

当他们的算法准备就绪时,研究人员测试了它是否可以在公司使用的市售数据管理软件中找到并诊断性能错误,以跟踪其数字和数字。首先,他们通过运行较旧的无故障版本的数据管理软件来训练算法,以识别正常的计数器数据。接下来,他们使用性能回归在软件的更新版本上运行算法。他们发现自己的算法在数小时内找到并诊断了该错误。Muzahid说,如果手动进行,这种类型的分析可能会花费大量时间。

除了诊断软件中的性能退化之外,Muzahid还指出,他们的深度学习算法在其他研究领域也有潜在用途,例如开发自动驾驶所需的技术。

穆扎希德说:“基本思想再次是相同的,那就是能够检测到异常模式。” “自动驾驶汽车必须能够检测出是汽车还是人在前面,然后采取相应的行动。因此,这又是异常检测的一种形式,而且好消息是,我们的算法已经被设计为可以这样做。 。”