考虑示例代码
library("foreach")
library("doMC")
library("multicore")
multicore:::detectCores()
registerDoMC(cores=6)
alpha <- foreach(i = 1:10) %dopar% {
...
}
当我使用 top 时,启动时线程数为 6。每个线程的工作量很大。但是,线程数迅速下降到 5、4、3、2,然后是 1。我想从那时起执行是串行的。我不明白为什么?
干杯
最佳答案
我不认为当你有串行任务时线程数会减少,但相同的线程会等待。在您的案例中,某些线程似乎已完成工作。
关于R foreach : Number of threads reduce to 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13206223/