2017-09-22 80 views
0

我正在使用pyomo用於混合整數線性編程模型。我把pyomo稱爲pyomo來解決這個模型。我正在解決的問題很大,需要並行計算。pyomo和cplex用於混合整數線性編程的並行計算

我應該在pyomo中還是在cplex中設置並行?

在pyomo中,我發現這個語法,但似乎不工作。

solver_manager = SolverManagerFactory('pyro') 

如果在cplex中設置爲並行,如何修改此語法?添加一些調用並行計算的東西?

result = opt.solve(inst, tee=True, warmstart=True) 

我不知道該怎麼辦......感謝您的幫助!

最佳, 雷

回答

0

默認情況下,CPLEX應該已經使用並行線程。例如,對於global thread count參數的文件中,我們有:

當這個參數的默認設置爲0(零),您的 應用不包括回調或只是一個信息的回調, CPLEX可以使用所有可用的線程;也就是說,最多32個線程或者機器的核心數量,以較小者爲準。如果您的機器提供32個以上的線程,您可以利用 增加此參數的值。

在pyomo文檔here,它說:

如果有與解算器(即Pyomo具有輸出 後「應用解算器」),它往往是有益使用的選項煩惱 - 解算器導致求解器輸出顯示而不是陷入。

如果這樣做,您應該在屏幕上看到CPLEX日誌輸出。找一條這樣的線:

並行模式:確定性的,最多使用8個線程。

如果不是,也許它會給你一個線索。

+0

是的,它顯示並行模式信息。換句話說,只保留代碼,它直接使用求解器CPLEX進行並行計算。謝謝,rkersh。 – Lei