如果我想加快下面的代码,我该怎么做?
pcg <- foreach(boot.iter=1:boot.rep) %dopar% {
d.boot<-d[in.sample[[boot.iter]],]
*here in.sample[[boot.iter]] 随机生成 1000 个行号。
我计划拆分整体任务并将单独的试验发送到每个核心。例如,
sub_task<-foreach(i=1:cores.use)%dopar%{
for (j in 1:trialsPerCore){
d.boot<-d[in.sample[[structure[i,j]]],]}}
*结构是一个矩阵,包含从 1 到 boot.rep
但这不起作用,似乎我们不能在 foreach 中使用“for”循环?此外,d.boot 仅保留每个内核的最后一次迭代。
我尝试在线搜索,发现以下代码有效,
sub_task<foreach(i=1:cores.use)%:%
foreach(j=1:trialsPerCore)%dopar%{
d.boot<-d[in.sample[[structure[i,j]]],]}
但是我觉得和我原来的功能差不多,我觉得没有很大的提升。
你们有什么建议吗?