a d*_*ben 5 linux ubuntu performance r cpu-speed
我的Ubuntu机器的性能对于R kmeans{stats}来说很糟糕,而Windows 7没有显示任何问题.
X是一个5000 x 5矩阵(数值变量).
k= 6
我的台式机是Intel Xeon CPU W3530 @ 2.80GHz x 8(即8核)Dell Precision T3500,带有24 GB RAM的Ubuntu 12.04.4 LTS(GNU/Linux 3.2.0-58-generic x86_64).
R版本3.0.2(2013-09-25) - "飞盘航行"版权所有(C)2013 R统计计算平台基础:x86_64-pc-linux-gnu(64位)
> system.time(X.km <- kmeans(X, centers=k, nstart=25))
user system elapsed
49.763 52.347 103.426
Run Code Online (Sandbox Code Playgroud)
与配备Intel Core i5-2430M @ 2.40GHz,2核,8 GB RAM,R 3.0.1和相同数据的Windows 7 64位笔记本电脑相比:
> system.time(X.km <- kmeans(X, centers=k, nstart=25))
user system elapsed
0.36 0.00 0.37
Run Code Online (Sandbox Code Playgroud)
更快,更快.因为nstart=1问题仍然存在,我只是想放大执行时间.
有什么明显的东西我不见了吗?
亲自尝试一下,看看你取得的成就:
set.seed(101)
k <- 6
n <- as.integer(10)
el.time <- vector(length=n)
X <- matrix(rnorm(25000, mean=0.5, sd=1), ncol=5)
for (i in 1:n) { # sorry, not clever enough to vectorise
el.time[i] <- system.time(kmeans(X, centers=k, nstart=i))[[3]]
}
print(el.time)
plot(el.time, type="b")
Run Code Online (Sandbox Code Playgroud)
我的结果(ubuntu机器):
> print(el.time)
[1] 0.056 0.243 0.288 0.489 0.510 0.572 0.623 0.707 0.830 0.846
Run Code Online (Sandbox Code Playgroud)
Windows机器:
> print(el.time)
[1] 0.01 0.12 0.14 0.19 0.20 0.21 0.22 0.25 0.28 0.30
Run Code Online (Sandbox Code Playgroud)
小智 0
您是否在虚拟机中运行 Ubuntu?如果是这种情况,我可以看到结果要慢得多 - 取决于为虚拟机分配了多少内存、处理器、磁盘空间。如果它没有在虚拟机中运行,那么结果会令人费解。当您运行此程序时,我想查看两个系统上每次运行的性能计数器(CPU 使用率、内存使用率等)?否则,我唯一可以链接的是代码“适合”Windows 系统的 L1 缓存,但不适合 Linux 系统。Xeon 有 8GB(L3?)缓存,而 Core i5 只有 3MB - 但我假设那是 L3。我不知道L1和L2缓存结构是什么样的。
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |