【发布时间】:2018-06-20 05:12:15
【问题描述】:
像许多人一样,我怀疑,我有点担心最近的 Windows 更新以解决 Meltdown 和 Spectre 是否会对 R 中的计算时间产生重大不利影响。我使用大型(ish)数据进行了大量生存分析集,这已经需要很长时间了。不幸的是,我只是在更新我的主 PC 后才想到它,因此决定在相关 Windows 更新之前和之后使用旧电脑进行一些基准测试。结果非常有趣。
test replications elapsed relative user.self sys.self
Pre-Update 100 287.31 1 281.41 5.68
PostUpdate 100 334.71 1 290.42 44.27
PostUpdate 100 338.9 1 294.22 44.5
经过时间的增加令人恼火,但可以控制。真正令人震惊的是,这种放缓主要是由于系统时间增加了近 8 倍。这是预期的吗?有没有其他人做过类似的练习?知道其他人正在经历的影响范围会很有趣,因为我只使用一种特定类型的计算来做这件事,这在我的一些工作中是一个瓶颈,而其他计算可能会受到更大的影响。我很欣赏这是在推动 stackoverflow 所针对的问题类型的界限,但由于这可能会影响几乎所有人,因此分享经验的答案可能会很有用。
只是一点背景背景: 我用尽可能少的其他进程运行这些测试。
- 处理器:i5-2500(显然没有微码更新!)
- 操作系统:Windows 7,更新前后 KB4056897
- R 版本 3.4.3
为了完整起见,运行的代码是:
library("survival")
library("rbenchmark")
set.seed(42)
n = 1e6
censTimes <- seq(from = 0, to = 1, length.out = n)
failTimes <- rweibull(n, 1, -1/log(0.9))
Event <- failTimes < censTimes
obsTimes <- ifelse(Event, failTimes, censTimes)
survObj <- Surv(obsTimes, Event)
Group <- rbinom(n, 4, 0.5)
benchmark(coxph(survObj ~ Group))
【问题讨论】:
标签: r benchmarking