複数ノードの Linux クラスターで R を実行しています。MPI や Snow などの並列計算ソフトウェアを使用せずに、スクリプトまたはバッチ モードを使用して R で分析を実行したいと考えています。
これは、各ノードがデータの異なる部分を実行するように入力データを分割することで実行できることを知っています。
私の質問は、どうすればこれを正確に行うことができますか? スクリプトのコーディング方法がわかりません。例は非常に役に立ちます!
これまで PBS を使用してスクリプトを実行してきましたが、R はシングル スレッド プログラムであるため、1 つのノードでしか実行されないようです。したがって、コードを調整してすべてのノードに労力を分散させる方法を理解する必要があります。
これが私がこれまでやってきたことです:
1) コマンドライン:
> qsub myjobs.pbs
2) myjobs.pbs:
> #!/bin/sh
> #PBS -l nodes=6:ppn=2
> #PBS -l walltime=00:05:00
> #PBS -l arch=x86_64
>
> pbsdsh -v $PBS_O_WORKDIR/myscript.sh
3) myscript.sh:
#!/bin/sh
cd $PBS_O_WORKDIR
R CMD BATCH --no-save my_script.R
4) my_script.R:
> library(survival)
> ...
> write.table(test,"TESTER.csv",
> sep=",", row.names=F, quote=F)
どんな提案でも大歓迎です!ありがとうございました!
-CC