サンプルコードを検討する
library("foreach")
library("doMC")
library("multicore")
multicore:::detectCores()
registerDoMC(cores=6)
alpha <- foreach(i = 1:10) %dopar% {
...
}
top を使用すると、起動時のスレッド数は 6 となります。各スレッドの作業量は相当なものです。しかし、スレッドの数はすぐに 5、4、3、2、次に 1 に減少します。それ以降、実行はシリアルになると思います。なぜだか分からない?
乾杯