gpt4 book ai didi

r - mclapply 用户时间大于耗时

转载 作者:行者123 更新时间:2023-12-04 20:45:23 26 4
gpt4 key购买 nike

我正在尝试使用 mclapply parallel的功能包裹在 R .该函数通过计算对数似然距离(CPU 密集型操作)将值分配给序列矩阵。

由此产生的 system.time值(value)观令人困惑:

> 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 .

最佳答案

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

cumulative sum of user and system times of any child processes

所以你的任务在每个内核上花费了大约 15 秒( mclapply 默认使用 2 个内核,参见 mc.cores 参数)。

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

关于r - mclapply 用户时间大于耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18654497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com