是否有用于实验比较运行时的标准?


10

我的情况

我正在写一篇论文,介绍我开发的软件模块,并且想将其运行时间与同一任务的其他模块进行比较。我知道运行时实验的弊端,但请假设在我的情况下无法解决它。(我可以并且确实可以从理论上推论出某些属性,但是并不能满足所有要求。)

我想用于基准测试的特定方案有两个参数:问题的复杂度  和确定详细问题的随机种子  r。我主要想展示对n的依赖  。根据初步研究和理论,r对运行时的影响很小或可以忽略。单个任务最多需要十分钟才能完成。nrnr

实际问题

我正在寻找一些进行此类实验的公认或公开程序,或者至少要列出一些常见的陷阱(理想情况下已发布)。

我到目前为止发现的

没有。互联网搜索会产生各种各样无关的结果,但是我可能没有使用正确的术语。包括最低关键字我知道这是一个很好的标准)(请参见下文)也没有帮助。

我会怎么做

  • 尽可能在禁用了GUI等潜在干扰软件的情况下,在同一台计算机上运行所有实验。

  • 使所有模块经受场景的相同选择,即,相同的和  rnr

  • 对于每种情况,请以随机顺序彼此直接直接测试不同的模块。换句话说,不同模块之间的循环是最里面的模块。这应避免由于机器性能的缓慢波动(例如,由于温度变化)而对不同模块造成偏差。随机顺序应避免由于诸如缓存之类的影响而产生偏差,或者避免一个模块总是在同一模块之后进行测试。

  • n


这可能有助于解释您的理由,为什么您认为“在我的情况下无法解决”。但是,当然,这可能是一个独立的问题,并在那里链接,因为该问题的重点已足够突出。
阿皮瓦(Apiwat Chantawibul)

@Billiska:我不确定你要我做什么。为什么要在一个单独的问题中解释我对实验方法的推理?我对此毫无疑问。
Wrzlprmft

我不得不不同意您花最少的时间进行重复实验。您似乎认为可能仅将轮廓线向上。可能也可以使轮廓线向下吗?更常见的是同时检查多个统计数据,例如均值,中位数,最大值。谁知道他们可能会显示出您意料之外的内容。毕竟这是一个实验性的实验。
阿皮瓦(Apiwat Chantawibul),

2
这是非常广泛的;可以写有关该主题的书籍,例如McGeoch的“实验算法指南”。甚至有人会问你:“科学有任何标准吗?”。因此,我不确定这是否合理。您还有更具体的问题吗?
拉斐尔

Answers:


2

CC McGeoch的“实验算法指南”是

  • 如何进行算法实验,
  • 如何解释和使用结果,以及
  • 如有必要,如何迭代以获得更有意义的结果。

2

除了每次运行所用的时间之外,还可以报告用户和系统模式的秒数以及IP数据包的总数以及磁盘I / O的总数(如果只是为了验证某些数字始终“低”并且对经过时间的影响可以忽略不计)。

PHK和其他人在https://wiki.freebsd.org/BenchmarkAdvice上提供了很好的建议,包括

使用ministat查看您的人数是否有意义。考虑购买“卡通统计指南”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.