3

サンプルコードを検討する

library("foreach")

 library("doMC")

 library("multicore")

 multicore:::detectCores()

 registerDoMC(cores=6)

 alpha <- foreach(i = 1:10) %dopar% {
  ...
 }

top を使用すると、起動時のスレッド数は 6 となります。各スレッドの作業量は相当なものです。しかし、スレッドの数はすぐに 5、4、3、2、次に 1 に減少します。それ以降、実行はシリアルになると思います。なぜだか分からない?

乾杯

4

1 に答える 1

0

シリアルタスクを実行している間、スレッドの数が減るとは思いませんが、同じスレッドが待機します。あなたのケースでは、いくつかのスレッドが動作を終了したようです。

于 2012-11-03T12:41:51.143 に答える