У меня есть функция (модель нейронной сети), которая производит цифры. Я хочу протестировать несколько параметров, методов и различных входных данных (то есть сотни прогонов функции) из python с использованием PBS на стандартном кластере с Torque.
Примечание: я пробовал параллельный python, ipython и тому подобное и никогда не был полностью удовлетворен, так как хочу чего-то более простого. Кластер находится в заданной конфигурации, которую я не могу изменить, и такое решение, интегрирующее python + qsub, безусловно, принесет пользу сообществу.
Чтобы упростить вещи, у меня есть простая функция, такая как:
import myModule
def model(input, a= 1., N=100):
do_lots_number_crunching(input, a,N)
pylab.savefig('figure_' + input.name + '_' + str(a) + '_' + str(N) + '.png')
, где input
- объект, представляющий ввод, input.name
- строка, а do_lots_number_crunching
может длиться часами.
У меня вопрос: есть ли правильный способ преобразовать что-то вроде сканирования параметров, таких как
for a in pylab.linspace(0., 1., 100):
model(input, a)
в "что-то", что запускает сценарий PBS для каждого вызова функции model
?
#PBS -l ncpus=1
#PBS -l mem=i1000mb
#PBS -l cput=24:00:00
#PBS -V
cd /data/work/
python experiment_model.py
Я думал о функции, которая включала бы шаблон PBS и вызывал бы его из скрипта python, но пока не мог понять это (декоратор?).