(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 つのコアしか使用されません。
並列処理を取り戻したい!どうすれば入手できますか?