Ho una funzione (modello di rete neurale) che produce figure. Desidero testare diversi parametri, metodi e input diversi (ovvero centinaia di esecuzioni della funzione) da python usando PBS su un cluster standard con Torque.programmazione "imbarazzantemente parallela" usando python e PBS su un cluster
Nota: ho provato parallelpython, ipython e simili e non sono mai stato completamente soddisfatto, poiché desidero qualcosa di più semplice. Il cluster è in una data configurazione che non posso cambiare e una tale soluzione che integra python + qsub sarà sicuramente di beneficio per la comunità.
Per semplificare le cose, ho una semplice funzione come:
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')
dove input
è un oggetto che rappresenta l'ingresso, input.name
è una stringa, e do_lots_number_crunching
può durare ore.
La mia domanda è: esiste un modo corretto per trasformare qualcosa di simile a una scansione di parametri quali
for a in pylab.linspace(0., 1., 100):
model(input, a)
in "qualcosa" che avrebbe lanciato uno script PBS per ogni chiamata alla funzione model
?
#PBS -l ncpus=1
#PBS -l mem=i1000mb
#PBS -l cput=24:00:00
#PBS -V
cd /data/work/
python experiment_model.py
Stavo pensando a una funzione che dovrebbe includere il modello PBS e chiamarlo dallo script python, ma non poteva ancora capirlo (decoratore?).