Я изучаю, как использовать суперкомпьютеры для эффективного использования ресурсов. Предположим, у меня есть скрипт python, который создаст текстовый файл с заданным случайным числом.Суперкомпьютер: мертвый простой пример программы для запуска в суперкомпьютере
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))
Это создаст только один текстовый файл в локальной машине.
Можно ли использовать несколько экземпляров этой программы, использовать несколько узлов и получить несколько выходов?
У меня есть шаблон для mpiexec в программе на C, который выглядит так, но я не смог найти шаблон для программы 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
Примечание: На одном узле с использованием нескольких ядер я могу написать Баш скрипт так:
for i in `seq 1 10`;
do
python myfile.py && cp temp.txt outputs/out$i.txt &
done
Но я хочу использовать разные узлы.
Требуемая мощность: выходы/out1.txt, out2.txt, out3.txt и т.д.
Некоторые родственных соединений являются следующие:
https://www.osc.edu/sites/osc.edu/files/documentation/Batch%20Training%20-%2020150312%20-%20OSC.pdf
https://www.osc.edu/~kmanalo/multithreadedsubmission
Спасибо очень очень много для вашего ответа. Я проведу этот код в супер-вычислительном центре штата Огайо. –
Будет ли он также копировать разные выходы в конечном выходе, может быть, ему нужно - pbsdcp, но я не знаю, как это сделать? –
@BhishanPoudel, я не понимаю ваш вопрос – efirvida