首页 文章

并行优化pyomo-gurobi

提问于
浏览
0

我对Pyomo和优化都很新 . 我试图解决一个迭代的局部搜索算法,我必须多次解决“相对较小”的优化问题 . 目前,我已经实现了一个循环,每次,我制定优化问题并用Gurobi解决它 . 但是,我想知道是否有一种“并行化”的方式来解决这个问题,因为本地搜索的结果并没有相互影响 . 我查看了ThreadPoolExecutor和ProcessPoolExecutor . 第一个没有提高速度,而第二个给我一些错误 . 你有什么建议吗?这些是几行代码,只是为了给出一个想法 . 谢谢 .

def task(input)
   ###optimization formulation
     #optimization solver (gurobi)
   return (result_optimization)

def main():
    with concurrent.futures.ProcessPoolExecutor(max_workers=2) as executor:
        future_task={executor.submit(task,number): number for number i list_local_searches}
        for future in concurrent.futures.as_completed(future_task):
            results_local_searches.append(future.result())

if __name__ == '__main__':
    main()

1 回答

  • 0

    您可能会遇到许可问题,具体取决于您的Gurobi许可 . 凭借我的学历,我目前每台机器只能运行一个Gurobi流程 .

    有一个站点许可证可以解决这个问题,但你要感受到正确设置它的权力 .

相关问题