打開cpp文件並行我遇到了一個問題,有線的,但我不知道如果我要問的問題正確:RCPP在Rstudio,內存不能緩存的時候,如果我不Rstudio
result = parLapply(cl, 1:4,
function(j,rho_list_needed,delta0_needed,
V_iter_s,Sigma_list_needed) {
rhoj = rho_list_needed[[j]]
delta0_in_cpp = delta0_needed
v = as.vector(V_iter_s[,,,j])
sigmaj = Sigma_list_needed[[j]]
sourceCpp('sample_Z.cpp')#first time complie slow,then cashed
return(Sample_Z(rhoj,delta0_in_cpp, v,sigmaj,A,Cmatrix))
},rho_list_needed,delta0_needed,
V_iter[[s]],Sigma_list_needed)
當我通過parLapply
並行測試我的sample_Z.cpp
時,單次計算大約需要1秒。同時,我的4次迭代需要大約1.2秒,與無與倫比的版本相比,這是一個很大的改進,這是8秒。
昨天我運行程序時根本沒有問題。剛纔我注意到了一個bug,並修改了我的程序。爲了給我的電腦一個新的環境,我重新啓動了我的電腦。當開始運行我的程序時,我只打開了.R
文件,然後運行。但是這個平行花了9秒,而這個平均花了1.2秒。 9秒鐘是在對我的核心進行預熱之後,也就是說,在我開始計時之前已經找到了cpp。
我只是不知道錯誤在哪裏。然後嘗試直接在我的全球歡樂中找到cpp文件,並且我發現根本沒有緩存。第二次與第一次相同。
但我不小心在編輯處打開了Rstudio中的sample_Z.cpp
。然後,現在一切正常。
我不知道如何在谷歌搜索這個類似的問題與什麼樣的關鍵詞,我不知道如果打開cpp文件是必須的,而我從來沒有知道。
有誰能告訴我什麼是真正的問題?謝謝!