首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mclapply用户时间大于已用时间

mclapply用户时间大于已用时间
EN

Stack Overflow用户
提问于 2013-09-06 17:31:32
回答 1查看 1.3K关注 0票数 5

我正在尝试在R中使用parallel包的mclapply函数。该函数通过计算对数似然距离将值分配给序列矩阵-这是一个CPU密集型操作。

由此产生的system.time值令人困惑:

代码语言:javascript
复制
> system.time(mclapply(worksample,function(x){p_seqi_modj(x,worksample[[1]],c(1:17))}))
   user  system elapsed 
 29.339   1.242  18.581 

我以为elapsed的意思是聚合时间(user+system)。在这种情况下,上述结果意味着什么?我应该将自己定位到什么时候?我的非并行化版本在user上占用的时间更少,而在elapsed上占用的时间更多。

EN

回答 1

Stack Overflow用户

发布于 2013-09-06 20:49:05

帮助页面?system.time指出,函数返回的值是proc_time类的对象,我们应该咨询?proc.time。在那里,我们了解到用户时间是

代码语言:javascript
复制
cumulative sum of user and system times of any child processes

因此,您的任务在每个内核上花费了大约15秒(mclapply默认使用2个内核,请参阅mc.cores参数)。

实际上,我们在前面的帮助页面中看到,proc.time()返回了五个分隔进程时间和子时间的元素,打印中使用的摘要方法将用户和系统时间压缩为进程+子时间,因此有更多信息可用。

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

https://stackoverflow.com/questions/18654497

复制
相关文章

相似问题

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