【问题标题】:Issue with running multiple cplex models in parallel using multiprocessing使用多处理并行运行多个 cplex 模型的问题
【发布时间】:2020-06-26 09:30:07
【问题描述】:

我想使用 python 多处理同时解决多个 cplex 模型。我知道python中多处理的基本示例是这样的:

from multiprocessing import Process

def func1():

 '''some code'''

def func2():

'''some code'''

if __name__=='__main__':
    p1 = Process(target = func1)
    p1.start()
    p2 = Process(target = func2)
    p2.start()
    p1.join()
    p2.join()

我的脚本结构如下:

Model1(args**):
'''cplex model written with docplex'''
return model

Model2(args**):
'''cplex model written with docplex'''
return model

Generate_pool1(args**):
    cpx = mdl.get_cplex()
    cpx.parameters.parallel.set(1)
    cpx.parameters.threads.set(5)
    cpx.parameters.emphasis.mip.set(4)
    cpx.parameters.simplex.tolerances.markowitz.set(0.999)
    cpx.parameters.simplex.tolerances.optimality.set(1e-9)
    cpx.parameters.simplex.tolerances.feasibility.set(1e-9)
    cpx.parameters.mip.pool.intensity.set(4)
    cpx.parameters.mip.pool.absgap.set(1e75)
    cpx.parameters.mip.pool.relgap.set(1e75)
    cpx.populatelim=50
    
    numsol = cpx.solution.pool.get_num()
    return numsol


Generate_pool2(args**):
    cpx = mdl.get_cplex()
    cpx.parameters.parallel.set(1)
    cpx.parameters.threads.set(5)
    cpx.parameters.emphasis.mip.set(4)
    cpx.parameters.simplex.tolerances.markowitz.set(0.999)
    cpx.parameters.simplex.tolerances.optimality.set(1e-9)
    cpx.parameters.simplex.tolerances.feasibility.set(1e-9)
    cpx.parameters.mip.pool.intensity.set(4)
    cpx.parameters.mip.pool.absgap.set(1e75)
    cpx.parameters.mip.pool.relgap.set(1e75)
    cpx.populatelim=50
    
    numsol = cpx.solution.pool.get_num()
    return numsol

main():
 for i in range(len(data)-1):
    m1=Model1(data[i])
    m2=Model2(data[i+1])
    p1 = Process(target = Generate_pool1,(m1,i),)
    p1.start()
    p2 = Process(target = Generate_pool2,(m2,i+1),)
    p2.start()
    p1.join()
    p2.join()

当我运行此代码时,cplex 部分不起作用。控制台继续运行,但没有任何反应,并且该过程不会自行完成,我每次都必须通过键盘中断它。我的引擎有 32 个虚拟内核,它在 spyder -windows 10 上运行。

【问题讨论】:

    标签: python-3.x multithreading multiprocessing cplex docplex


    【解决方案1】:

    【讨论】:

    • 谢谢亚历克斯。我仍然不明白如何将这些与我的主要问题和代码联系起来
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 2020-02-10
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多