Производительность моей машины с Ubuntu ужасна для R kmeans
{stats}, тогда как Windows 7 не показывает никаких проблем.
X
— это матрица 5000 x 5 (числовые переменные).k
= 6
Мой настольный компьютер представляет собой процессор Intel Xeon W3530 @ 2,80 ГГц x 8 (т. е. 8 ядер) Dell Precision T3500 с Ubuntu 12.04.4 LTS (GNU/Linux 3.2.0-58-универсальный x86_64) с 24 ГБ ОЗУ.
Версия R 3.0.2 (25 сентября 2013 г.) -- "Frisbee Sailing" Copyright (C) 2013 The R Foundation for Statistical Computing Platform: 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
По сравнению с 64-битным ноутбуком с Windows 7, процессором Intel Core i5-2430M @ 2,40 ГГц, 2 ядрами, 8 ГБ ОЗУ, R 3.0.1 и теми же данными:
> system.time(X.km <- kmeans(X, centers=k, nstart=25))
user system elapsed
0.36 0.00 0.37
Гораздо, намного быстрее. Для 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")
Мои результаты (машина 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
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