Je cours R sur un cluster Linux à nœuds multiples. Je voudrais exécuter mon analyse sur R en utilisant des scripts ou en mode batch sans utiliser de logiciel de calcul parallèle tel que MPI ou snow. Je sais que cela peut être fait en divisant les données d'entrée de telle sorte que chaque nœud exécute différentes parties des données.Programmation R - soumission de travaux sur un cluster Linux à nœuds multiples à l'aide de PBS
Ma question est comment puis-je faire exactement cela? Je ne suis pas sûr de savoir comment je devrais coder mes scripts. Un exemple serait très utile!
J'ai exécuté mes scripts jusqu'à présent en utilisant PBS, mais il ne semble fonctionner que sur un nœud car R est un programme à un seul thread. Par conséquent, j'ai besoin de comprendre comment ajuster mon code afin qu'il distribue du travail à tous les nœuds.
Voici ce que je fais jusqu'à présent:
1) ligne de commande:
> 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)
Toute suggestion sera appréciée! Je vous remercie!
-CC
Êtes-vous sûr que pbs lance plusieurs instances? essayez d'ajouter 'echo $ (hostname)' dans le fichier batch du travail – Anycorn