簡體   English   中英

GUROBI 僅使用單核來設置 cvxpy (python) 的問題

[英]GUROBI only uses single core to setup problem with cvxpy (python)

我有一個用 cvxpy 構建的大型 MILP,想用 GUROBI 解決。 當我使用 cvxpy 的 solve() 函數時,它需要非常非常非常長的時間來設置並且不會開始解決幾個小時。 在這樣做的同時,我的集群中只有 1 個核心被使用。 它用於 100%。 我想使用多核來構建模型,這樣構建模型的過程就不會花那么長時間。 運行 grbprobe 還表明 gurobi 知道其他內核,並且為了解決它使用多個內核的問題。

我嘗試使用不同的標志運行,即關閉和打開預求解或給出要使用的線程數(這似乎我什至沒有解決。

我還減少了問題中的約束數量,它開始解決得更快,這意味着這絕對不是模型本身的問題。

正常狀態下的問題應該有 2200 個約束,我將其減少到 150,它花了幾秒鍾才開始搜索解決方案。

問題是我沒有看到任何東西,因為獲得“設置用戶名參數”標志需要很長時間,而且我沒有得到任何關於計算機同時做什么的信息。

有沒有辦法告訴 GUROBI 或 CVXPY 它需要更多的 cpu 來構建? 還有另一種方法可以解決這個問題嗎?

對不起。 求解的第一部分(設置、預求解、縮放、求解根、預處理)幾乎完全是連續的。 並行部分是它真正開始在分支定界樹上工作的時候。 對於許多問題,並行部分是迄今為止最昂貴的,但並非對所有問題都是如此。

這不僅僅是古羅比的情況。 其他高端求解器具有相同的行為。

有一些選項可以減少預求解和預處理。 這可能會讓您更早入住 B&B。 但是,通常最好不要觸摸這些選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM