1

doMC とマルチコアに基づく R (netresponse) パッケージに並列計算オプションを追加しようとしています。スクリプトは問題なく動作しますが、2 回目の試行でのみです。

バグを再現するには、R を起動して以下のスクリプトを実行します。最後の行でスタックします。ctrl-c で中断した後、「select: Interrupted system call」というメッセージがいくつか表示されます。次に、同じスクリプトを再度実行すると、問題なく期待どおりの結果が得られます。

この作業を最初の実行で適切に行うには、さらに初期化が必要ですか? または他のヒントはありますか?

ご支援ありがとうございます - L


require(netresponse)
require(multicore)
require(doMC)   
registerDoMC(3)
print(getDoParWorkers())
res <- foreach(i = 1:100, .combine = cbind, 
        .packages = "netresponse") %dopar% netresponse::vdp.mixt(matrix(rnorm(1000), 100, 10))
4

2 に答える 2

1

パッケージ netresponse のヘルプ ページからの依存関係のリストを以下に示します。「依存関係: メソッド、igraph、グラフ、minet」。引数に「netresponse」をリストするだけでは、それらすべてをワーカーに渡していないのではないかと思い.packagesます。

于 2011-07-15T20:20:07.380 に答える
0

foreach %dopar% の問題のクイック フィックスは、これらのパッケージを再インストールすることです。

install.packages("doSNOW")

install.packages("doParallel") 

install.packages("doMPI")

StackOverflow のさまざまなスレッドで言及されているように、これらは R の並列処理に関与しています。これらのパッケージの古いバージョンに存在していたバグは削除されました。プロジェクト/パッケージでこれらのパッケージを使用していなくても、おそらく役立つでしょう。

于 2017-08-21T09:00:55.290 に答える