zim*_*ima 5 parallel-processing performance r
我正在尝试使用包的mclapply功能.该功能通过计算对数似然距离(CPU密集型操作)将值分配给序列矩阵.parallelR
结果system.time值令人困惑:
> system.time(mclapply(worksample,function(x){p_seqi_modj(x,worksample[[1]],c(1:17))}))
user system elapsed
29.339 1.242 18.581
Run Code Online (Sandbox Code Playgroud)
我认为这elapsed意味着聚合时间(user+ system).在这种情况下,上述结果意味着什么?我应该在什么时候定位自己?我的非平行版本花费的时间更少,user而且更多elapsed.
帮助页面?system.time说函数返回的值是类 proc_time 的对象,我们应该查阅?proc.time。在那里我们了解到用户时间是
cumulative sum of user and system times of any child processes
Run Code Online (Sandbox Code Playgroud)
所以你的任务在每个核心上花费了大约 15 秒(mclapply默认使用 2 个核心,请参阅mc.cores参数)。
实际上,我们在帮助页面的前面看到它proc.time()返回五个元素,将进程和子时间分开,并且打印中使用的摘要方法将用户和系统时间折叠为进程+子时间,因此还有更多可用信息。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |