【发布时间】:2018-09-08 16:25:28
【问题描述】:
我对 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()
【问题讨论】:
标签: optimization parallel-processing threadpoolexecutor pyomo