我使用戴尔Latitude E7440 笔记本电脑与Windows 7企业操作系统, 8GB RAM ,64位操作系统,英特尔(R)Core(TM) i7-4600U CPU @ 2.10GHz处理器,2701 Mhz,2个核心,4个逻辑处理器(即4核)。
我使用Dell Precision Tower 7810 桌面与Windows 7企业操作系统, 32GB RAM ,64位操作系统,英特尔(R)Xeon(R )CPU E5-2620 v3 @ 2.40GHz 2 处理器,2401 Mhz,6个核心,12个逻辑处理器(即24个核心)。
我使用R的一个很好的演示是使用RStudio中的gbm
在具有约300个特征的100K大小的数据上运行二进制分类。但无论我在我的笔记本电脑R版本(所有其他软件关闭,不使用并行化)上做什么,都比我的桌面R版本更快。怎么可能?我需要做些什么才能找到答案?
笔记本:
> sum <- 0; system.time(for (i in 1:1000000) sum <- sum + i)
user system elapsed
0.36 0.00 0.36
> memory.limit()
[1] 8097
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.1
桌面:
> sum <- 0; system.time(for (i in 1:1000000) sum <- sum + i)
user system elapsed
0.52 0.00 0.52
> memory.limit()
[1] 32684
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.3.1
答案 0 :(得分:6)
戴尔Latitude E7440笔记本电脑...... i7-4600U CPU @ 2.10GHz处理器, 2701 Mhz
Dell Precision Tower 7810台式机... E5-2620 v3 @ 2.40GHz 2处理器, 2401 Mhz
那就是原因。您的笔记本电脑的CPU运行速度比桌面速度快,因此R运行速度更快。
在没有多线程BLAS或其他并行处理技巧的情况下,拥有多个内核不会影响问题。同样,只要你有足够的内存来保存你的数据,更多的千兆字节不会加速(除了缓存问题,但100K应该很容易适应两台机器上的缓存)。