作者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://www.ptt.cc/bbs/R_Language/M.1466521939.A.9D0.html
→ celestialgod: 要看你算的內容,可不可以向量化運算 06/21 23:25
→ celestialgod: 最簡單的方法就是用snow平行 (在板上搜尋就有) 06/21 23:25
→ also5566: 我的東西就是重複隨機抽樣然後運算而已 06/21 23:42
→ also5566: 也是因為裡面有抽樣的步驟 不知道snow會不會造成相依 ? 06/21 23:43
→ celestialgod: snow裡面會在每一個subprocess用不同的seed 06/21 23:48
→ celestialgod: 相依倒是不用擔心 06/21 23:48
→ celestialgod: 運算是重點 要看怎麼算才能決定達到最大加速的方法 06/21 23:48
→ also5566: 謝謝c大,我會去研究一下snow要怎麼設置,我的運算中有 06/21 23:53
→ also5566: 兩部我自己覺得比較慢的,一個是要依照某些規則生成一個 06/21 23:53
→ also5566: design matrix,另一個是要用最大概似法求最佳解。整體 06/21 23:53
→ also5566: 過程有滿多步驟的。 06/21 23:53