我有一个生成数字的函数(神经网络模型)。我希望在带有 Torque 的标准集群上使用 PBS 从 python 测试几个参数、方法和不同的输入(意味着函数的数百次运行)。
注意:我尝试了 parallelpython、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)
进入“某事”会为每次调用该model
函数启动一个 PBS 脚本?
#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 脚本中调用它的函数,但还无法弄清楚(装饰器?)。