Estoy ejecutando R en un clúster Linux de varios nodos. Me gustaría ejecutar mi análisis en R usando scripts o modo por lotes sin usar software de cómputo paralelo como MPI o nieve.Programación R: envío de trabajos en un clúster de Linux de varios nodos utilizando PBS
Sé que esto se puede hacer dividiendo los datos de entrada de modo que cada nodo ejecute diferentes partes de los datos.
Mi pregunta es ¿cómo hago esto exactamente? No estoy seguro de cómo debería codificar mis scripts. ¡Un ejemplo sería muy útil!
He estado ejecutando mis scripts hasta ahora usando PBS pero parece que solo se ejecuta en un nodo ya que R es un programa de un solo hilo. Por lo tanto, necesito descubrir cómo ajustar mi código para que distribuya la mano de obra a todos los nodos.
Esto es lo que he estado haciendo hasta ahora:
1) línea de comandos:
> 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) miscript .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)
Cualquier sugerencia será apreciada! ¡Gracias!
-CC
¿está seguro de que pbs inicia varias instancias? intente agregar 'echo $ (nombre de host)' en el archivo de trabajo por lotes – Anycorn