J'apprends à utiliser des superordinateurs pour faire un bon usage des ressources. Disons que j'ai un script python, qui va créer un fichier texte avec un nombre aléatoire donné.Superordinateur: exemple simple d'un programme à exécuter en superordinateur
myfile.py
# Imports
import random,os
outdir = 'outputs'
if not os.path.exists(outdir):
os.makedirs(outdir)
with open (outdir+'/temp.txt','w') as f :
a = random.randint(0,9)
f.write(str(a))
Cela va créer un seul fichier texte dans la machine locale.
Y a-t-il un moyen d'utiliser les multiples instances de ce programme, d'utiliser plusieurs nœuds et d'obtenir plusieurs sorties?
J'ai obtenu un modèle pour mpiexec dans le programme C qui ressemble à ceci, mais je n'ai pas trouvé de modèle pour le programme python.
#PBS -N my_job
#PBS -l walltime=0:10:00
#PBS -l nodes=4:ppn=12
#PBS -j oe
cd $PBS_O_WORKDIR
mpicc -O2 mpi-hello.c -o mpi-hello
cp $PBS_O_WORKDIR/* $PFSDIR
cd $PFSDIR
mpiexec ./mpi-hello
cp $PFSDIR/* $PBS_O_WORKDIR
Note: Sur un seul nœud en utilisant plusieurs noyaux Je peux écrire un script bash comme ceci:
for i in `seq 1 10`;
do
python myfile.py && cp temp.txt outputs/out$i.txt &
done
Mais je veux utiliser différents nœuds.
sortie requis: sorties/out1.txt, out2.txt, out3.txt etc
Quelques liens connexes suivent:
https://www.osc.edu/sites/osc.edu/files/documentation/Batch%20Training%20-%2020150312%20-%20OSC.pdf
https://www.osc.edu/~kmanalo/multithreadedsubmission
Merci très beaucoup pour votre réponse. Je vais tester ce code dans Ohio Super-Centre informatique. –
Va-t-il également copier les différentes sorties dans la sortie finale, peut-être qu'il a besoin - pbsdcp, mais je ne sais pas comment? –
@BhishanPoudel, je ne comprends pas votre question – efirvida