我无法拿出更好的头衔。
我正在群集上运行python 2.7。 Python调用Gurobi(优化程序包)来解决一组优化模型。在互动模式下,我可以
Python Main-code.py
一切都很好。
但是,我想使用qsub提交我的工作。因此,我编写了一个名为job.sh的脚本
#--------------------------------------########
#!/bin/bash
#$ -cwd
#$ -q shojaie-bigmem.q
#$ -l h_vmem=4G
#$ -l h_rt=00:10:00
#$ -pe local 2
#$ -o Output.out
#$ -e Error.err
export PATH="/home/guests/myfile/anaconda2/bin:$PATH"
python Main-code.py
然后通过
提交我的工作qsub job.sh
在我的python代码中,我有类似
for model in ['model1', 'model2', ..., 'modeln']:
if __name__ == '__main__':
p = Pool()
p.map(Opt_model, Input)
p.close()
p.join()
我现在收到这个奇怪的错误:
Exception in thread Thread-3:
Traceback (most recent call last):
File "/home/guests/myfile/anaconda2/lib/python2.7/threading.py", line 801, $
self.run()
File "/home/guests/myfile/anaconda2/lib/python2.7/threading.py", line754, $
self.__target(*self.__args, **self.__kwargs)
File "/home/guests/myfile/anaconda2/lib/python2.7/multiprocessing/pool.py",$
task = get()
File "exception.pxi", line 11, in gurobipy.GurobiError.__init__
TypeError: __init__() takes exactly 3 positional arguments (1 given)
这是我的问题:是因为我的.sh文件中缺少某些内容吗?还是因为我的并行编码中缺少某些内容(我怀疑它是否可以在我的PC上运行)?还是其他?
我真的不知道出了什么问题。感谢您的反馈!
PS:当我使用-pe local 1时(即仅一个内核)。运行正常。