Python多处理错误:线程Thread

时间:2019-01-15 02:57:13

标签: python-2.7 error-handling parallel-processing gurobi

我无法拿出更好的头衔。

我正在群集上运行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时(即仅一个内核)。运行正常。

0 个答案:

没有答案