У меня есть функция (модель нейронной сети), которая производит цифры. Я хочу проверить несколько параметров, методов и различных входов (что означает сотни прогонов функции) из python, используя PBS на стандартном кластере с Torque.
Примечание. Я пробовал параллельно iphone и т.д. и никогда не был полностью удовлетворен, так как я хочу что-то более простое. Кластер находится в заданной конфигурации, которую я не могу изменить, и такое решение, интегрирующее 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 script для каждого вызова функции 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 script, но еще не могла понять его (декоратор?).