2016-10-10 4 views
1

に設定してください。私のクラスタージョブのnicenessを増やしたいと思います。次のコードは成功しています:PSOCKクラスタの機密性をR

> cl <- makePSOCKcluster(rep('localhost', 2)) 
> clusterEvalQ(cl = cl, rnorm(3)) 
[[1]] 
[1] -0.6452848 -0.9899609 0.3083131 

[[2]] 
[1] 1.1687733 -0.1930413 1.1576510 

これは成功しません。私は次のコードを使用して、クラスタの作成後nice値を設定することができる午前

cl <- makePSOCKcluster(names = rep('localhost', 8), renice = 15) 
nice: +15: No such file or directory 

makePSOCKclusterのドキュメントを読んだ後

clusterEvalQ(cl = cl, tools::psnice(value = 15)) 

は、私は、クラスタに間違ってやっているかわからないんだけど問題を追跡することができませんでした。どのようにしてクラスタを作成し、ワーカースレッドのnicenessを同時に設定することができますか?

答えて

1

私はこれを "パラレル"パッケージのバグとみなします。 makePSOCKcluster "renice"オプションを使用すると、bashで動作しない "nice"コマンドの形式を使用しますが、csh/tcshで動作すると信じています。あなたは、「マニュアル= TRUE」オプションを使用して生成されたコマンドを見ることができます:

> library(parallel) 
> cl <- makePSOCKcluster(2, renice=15, manual=TRUE) 
Manually start worker on localhost with 
    nice +15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e 'parallel:::.slaveRSOCK()' MASTER=localhost PORT=11379 OUT=/dev/null TIMEOUT=2592000 XDR=TRUE 

あなたはbashのからこれを実行しようとした場合、あなたはあなたが報告された同じエラーメッセージが表示されます。 bashの構文は次のようにする必要があります。

$ nice -n 15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' ... 
+0

ありがとうございます。「manual = TRUE」オプションについてはわかりませんでした。私はこれを将来のデバッグに使用します。 – mcanearm