Tengo una función (modelo de red neuronal) que produce figuras. Deseo probar varios parámetros, métodos y diferentes entradas (es decir, cientos de ejecuciones de la función) de python utilizando PBS en un clúster estándar con Torque.programación "embarazosamente paralela" usando python y PBS en un clúster
Nota: probé parallelpython, ipython y tal y nunca estaba completamente satisfecho, ya que quiero algo más simple. El clúster se encuentra en una configuración determinada que no puedo modificar y una solución de este tipo que integre python + qsub beneficiará a la comunidad.
Para simplificar las cosas, tengo una función simple, tales como:
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')
donde input
es un objeto que representa la entrada, input.name
es una cadena, y do_lots_number_crunching
puede durar horas.
Mi pregunta es: ¿hay una manera correcta para transformar algo así como un análisis de parámetros como
for a in pylab.linspace(0., 1., 100):
model(input, a)
en "algo" que pondría en marcha una secuencia de comandos de PBS para cada llamada a la función model
?
#PBS -l ncpus=1
#PBS -l mem=i1000mb
#PBS -l cput=24:00:00
#PBS -V
cd /data/work/
python experiment_model.py
Estaba pensando en una función que incluiría la plantilla PBS y llamarlo desde el script en Python, pero aún no podía averiguarlo (decorador?).