作者also5566 (愚人节快乐)
看板R_Language
标题[问题] 让replication更快速
时间Tue Jun 21 23:12:15 2016
[问题类型]:
效能谘询(我想让R 跑更快)
[软体熟悉度]:
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
我写了一个模拟研究的function
里面包含了随机变数的产生以及後续的一些运算
需要有500次重复
产出结果是一个list
里面的元素包含一些参数估计、共变异数矩阵等等
因为我操弄变项总共有60种组合
每个都要重复500次
目前是用for loop来跑
1个组合大约需要20-30分钟
所有组合跑完就要20-30小时
function若有一些瑕疵就需要重跑20-30小时
因此希望可以让这个过程更快
[程式范例]:
setwd('dir1')
for (i in 1:500){
trial=formatC(i, width = 3, flag = '0')
res<-compute()
filename<-paste0(trial,".Rdata")
save(res,file=filename)
}
其中compute() 即为我的function
[环境叙述]:
[关键字]:
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.164.17.30
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1466521939.A.9D0.html
1F:→ celestialgod: 要看你算的内容,可不可以向量化运算 06/21 23:25
2F:→ celestialgod: 最简单的方法就是用snow平行 (在板上搜寻就有) 06/21 23:25
3F:→ also5566: 我的东西就是重复随机抽样然後运算而已 06/21 23:42
4F:→ also5566: 也是因为里面有抽样的步骤 不知道snow会不会造成相依 ? 06/21 23:43
5F:→ celestialgod: snow里面会在每一个subprocess用不同的seed 06/21 23:48
6F:→ celestialgod: 相依倒是不用担心 06/21 23:48
7F:→ celestialgod: 运算是重点 要看怎麽算才能决定达到最大加速的方法 06/21 23:48
8F:→ also5566: 谢谢c大,我会去研究一下snow要怎麽设置,我的运算中有 06/21 23:53
9F:→ also5566: 两部我自己觉得比较慢的,一个是要依照某些规则生成一个 06/21 23:53
10F:→ also5566: design matrix,另一个是要用最大概似法求最佳解。整体 06/21 23:53
11F:→ also5566: 过程有满多步骤的。 06/21 23:53