[英]Multiprocessing with Gurobi
我正在尝试使用多处理来解决我的优化问题。 我有许多需要分配给机器的工作(10、20、30)。
我只是插入了优化代码的粗略轮廓,因为它太长了:
def solve(jobs):
def load_data(jobs):
df = pd.read_csv(path_jobs)
def create_model():
model = pg.Model(env)
sets ...
variables ...
constraints...
objective ...
model.optimize()
print(results of optimization)
export_results = results.to_csv
results = create_model()
这是多处理的代码:
import multiprocessing as mp
if __name__ == '__main__':
with mp.Pool() as pool:
jobs= [10, 20, 30]
result = pool.map(solve, jobs)
print(result)
当使用多处理执行 model 时,它会在“model.optimize”之后停止。 所以它不是打印或导出结果。 此外,我收到此错误消息:
MaybeEncodingError: Error sending result: '<multiprocessing.pool.ExceptionWithTraceback object at 0x7f7bd8fdb890>'. Reason: 'TypeError("can't pickle PyCapsule objects")'
我会很感激任何想法。 优化问题本身运行良好。
>试试这种方法
from multiprocessing import Pool
def cube(x):
return x * x * x
def main():
threadObj = Pool(5)
arr = [1, 2, 3, 4]
outPut = []
for loop in threadObj.map(cube, arr):
outPut.append(loop)
print(outPut)
main()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.