[問題] 讓replication更快速

看板R_Language作者 (愚人節快樂)時間9年前 (2016/06/21 23:12), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
[問題類型]: 效能諮詢(我想讓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

06/21 23:25, , 1F
要看你算的內容,可不可以向量化運算
06/21 23:25, 1F

06/21 23:25, , 2F
最簡單的方法就是用snow平行 (在板上搜尋就有)
06/21 23:25, 2F

06/21 23:42, , 3F
我的東西就是重複隨機抽樣然後運算而已
06/21 23:42, 3F

06/21 23:43, , 4F
也是因為裡面有抽樣的步驟 不知道snow會不會造成相依 ?
06/21 23:43, 4F

06/21 23:48, , 5F
snow裡面會在每一個subprocess用不同的seed
06/21 23:48, 5F

06/21 23:48, , 6F
相依倒是不用擔心
06/21 23:48, 6F

06/21 23:48, , 7F
運算是重點 要看怎麼算才能決定達到最大加速的方法
06/21 23:48, 7F

06/21 23:53, , 8F
謝謝c大,我會去研究一下snow要怎麼設置,我的運算中有
06/21 23:53, 8F

06/21 23:53, , 9F
兩部我自己覺得比較慢的,一個是要依照某些規則生成一個
06/21 23:53, 9F

06/21 23:53, , 10F
design matrix,另一個是要用最大概似法求最佳解。整體
06/21 23:53, 10F

06/21 23:53, , 11F
過程有滿多步驟的。
06/21 23:53, 11F
文章代碼(AID): #1NQLbJdG (R_Language)
文章代碼(AID): #1NQLbJdG (R_Language)