首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mclapply不使用多核

mclapply不使用多核
EN

Stack Overflow用户
提问于 2013-08-28 06:18:35
回答 1查看 3.6K关注 0票数 5

我正在尝试处理一堆csv文件,并使用mclapply()并行地返回R中的数据帧。我有一台64核的机器,我似乎不能再使用mclapply()来利用这1核了。事实上,目前运行lapply()要比运行mclapply()快一点。下面的示例显示mclapply()没有使用更多可用内核:

代码语言:javascript
复制
library(parallel)

test <- lapply(1:100,function(x) rnorm(10000))
system.time(x <- lapply(test,function(x) loess.smooth(x,x)))
system.time(x <- mclapply(test,function(x) loess.smooth(x,x), mc.cores=32))

user  system elapsed
  0.000   0.000   7.234
user  system elapsed
  0.000   0.000   8.612

有什么技巧可以让它工作吗?我不得不在这台机器(v3.0.1)上从源代码编译R,有没有一些我遗漏的编译标志来允许forking?detectCores()告诉我我确实有64个内核可以使用……任何建议都很感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-04-12 03:34:40

我得到了与您类似的结果,但是如果我将rnorm(10000)更改为rnorm(100000),我将获得显著的速度提升。我猜想,额外的开销抵消了这样一个小规模问题的性能优势。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18476414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档