2

(k)Ubuntu 12.04.2 および R 3.0.1 を実行しています

以前は並行して実行されていた一連のコードを作成しましたが、現在は並行して実行されていません。これでさえ、もはや並行して実行されません:

library(doMC)
registerDoMC(4)
Results = foreach (i = 1:1e6, .combine = "c") %dopar% {
  sqrt(i)
}

そして、それは間違いなくすべきです。私がそれを壊したと思うのは、R 3.0.1 アップデートまたは-dev, -develインストールした BLAS パッケージのいずれかです。(openBLASだと思います)

system(sprintf("taskset -p 0xffffffff %d", Sys.getpid()))他の場所で提案されているように試してみたところ、次の結果が得られました。

pid 2415's current affinity mask: 1
pid 2415's new affinity mask: f

また、次のコマンドで R を実行してみました。

taskset 0xffff R

ただし、これらの手順のいずれかを実行した後でも、ループを実行すると 1 つのコアしか使用されません。

並列処理を取り戻したい!どうすれば入手できますか?

4

1 に答える 1