R

时间:2019-03-18 18:58:15

标签: r parallel-processing

是否有一种方法可以并行处理R中的blockSize()循环,以便同时预测几个块?

当前,我使用此行来预测我的栅格,这需要很长时间,因为我的堆栈非常大(约400层):

  cs <- blockSize(tmpstack)  
eras <- writeStart(x = eras,filename = outfile,overwrite=TRUE)  
for(i in 1:cs$n){
    rawVal <- getValues(tmpstack,row = cs$row[i],nrows = cs$nrows[i])
    predv  <- predict(rf1,newdata=rawVal)
    eras   <- writeValues(eras,v = as.numeric(as.character(predv)),start =       cs$row[i])
  }
eras <- writeStop(eras)

还是有其他方法可以使速度更快?使用此代码,我只使用了可用CPU功率的10%。

1 个答案:

答案 0 :(得分:0)

请参见val sqrt: Double => Double = Math.sqrt def applyTwice[A](f: A => A, d: A) = { f(f(d)) } println(applyTwice[Double](sqrt, 625)) assert(applyTwice[Double](sqrt, 625) == 5.0) // will check if applyTwice return 5.0 ,尤其是最后一个示例,因为您可以提供并行化的函数作为raster::clusterR的参数。

相关问题