я встретил проводное проблему, но мне интересно, если я прошу правильный вопрос:Rcpp в Rstudio, не может кэшировать в памяти, когда параллельно, если я не открыть файл CPP в 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)
Когда я тестировал свой sample_Z.cpp
с параллелью через parLapply
, единичный расчет занимает около 1 секунды. Параллельно мои 4 итерации занимают около 1,2 с, что является большим улучшением по сравнению с беспрецедентной версией, которая составляет 8 секунд.
Нет проблем, когда я запускаю свою программу вчера. Только сейчас я заметил ошибку и пересмотрел свою программу. Чтобы предоставить компьютеру новую среду, я перезапустил компьютер. Когда я начал запускать свою программу, я только открыл файл .R
и запустил. Но для этой параллели потребовалось 9 секунд, которая составляла 1,2 секунды. Через 9 секунд после разогрева моих сердечников, то есть, уже было получено cpp до того, как я его проведу.
Я просто не знаю, где ошибка. Затем попробуйте загрузить файл cpp прямо в мое глобальное веселье, и я обнаружил, что кэширования вообще не было. Второй раз занял то же время, что и первое.
Но я случайно открыл sample_Z.cpp
в Rstudio, явно в редакторе. И тогда все работает правильно.
Я не знаю, как искать подобную проблему в google с какими ключевыми словами, и я не знаю, является ли открытие файла cpp обязательным, пока я никогда не знал.
Может ли кто-нибудь сказать мне, в чем проблема? Благодаря!