首先,我正在使用jupyter notebook、python3.5版本和gurobi7.0.2及其python接口,都在redhat上。在
这就是我问题的背景:我想解决一个二次问题,它有大量的变量。建立目标函数需要1-2个小时以上。在
我考虑过使用NumpyGPU加速,但是表达式有点棘手,所以,这不是一个解决方案。在
因此,我尝试使用多个线程来构建目标函数。但是,我得到了一个错误,我不知道如何处理它。在
我简化了我的代码,因此它可以更具可读性(错误仍然相同)。在from gurobipy import *
import multiprocessing as mp
import queue
mp.set_start_method('fork')
def function(obj,q):
print('We enter')
obj = x*x + x*y + y*y + y*z + z*z + 2*x
q.put(obj)
print('We end')
m = Model("qp")
obj = QuadExpr()
x = m.addVar(ub=1.0, name="x")
y = m.addVar(ub=1.0, name="y")
z = m.addVar(ub=1.0, name="z")
q = mp.Queue()
if __name__