看板 R_Language 關於我們 聯絡資訊
[問題類型]: 效能諮詢(我想讓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