跳轉到內容

GLPK/Matlab

來自華夏公益教科書,開放的書籍,開放的世界

Matlab 是來自 The MathWorks 的數值計算環境。Matlab 是專有的,並且跨平臺。


GLPKMEX 是一個到 GLPK 庫的 Matlab MEX 介面。GLPKMEX 最初由 Nicolò Giorgetti 開發,Niels Klitgord 最近也做了一些貢獻。GLPKMEX 遵循 GNU 通用公共許可證 2.0 版釋出。官方支援可能在 sourceforge.net/projects/glpkmex/support 獲得。

GPLKMEX 二進位制檔案可用於 WindowsMacOS X,以及用於 Linux 的原始碼。檔案可以在 SourceForge 下載。但要小心——版本 2.8 僅為 32 位(而不是 64 位)Windows 系統提供預編譯版本,而版本 2.11 現在已經是最新版本。

更多預編譯二進位制檔案和 glpkmex 的更新版本在 Benoît Legat 的一個分支 中可用。

有關用法文件,請參閱檔案 glpk.m 的註釋頭。

Windows 7 (32 位)

[編輯 | 編輯原始碼]

確保所有元件都與您的作業系統匹配

  • 32 位 Matlab 環境
  • 32 位編譯的 mex 介面
  • 32 位 GLPK 庫檔案 (.lib)

請按照檔案 INSTALL 中的說明進行操作。

所需的 .lib 檔案是 Build_GLPK_with_VC10.bat 建立的。不能使用來自 GLPK for Windows 的 .lib 檔案。

Windows 7 (64 位)

[編輯 | 編輯原始碼]

確保所有元件都與您的作業系統匹配

  • 64 位 Matlab 環境
  • 64 位編譯的 mex 介面
  • 64 位 GLPK 庫檔案 (.lib)

請按照檔案 INSTALL 中的說明進行操作。

所需的 .lib 檔案是 Build_GLPK_with_VC10.bat 建立的。不能使用來自 GLPK for Windows 的 .lib 檔案。

Matlab 的替代方案

[編輯 | 編輯原始碼]

如果您不想使用 Matlab,還有類似的替代方案

PARFOR 的使用

[編輯 | 編輯原始碼]

PARFOR 命令用於迴圈執行程式碼塊,該程式碼塊隨後在工作節點叢集上並行執行。2011 年,Tim Kam 將 PARFOR 與 GLPKMEX 結合使用。他遇到了記憶體洩漏,並確定這是由於這種組合造成的。Tim 寫道:“也許使用 MATLAB 的mxFree()對於這個特定的 MATLAB 繫結(參見GLPKCC.cpp在 GLPKMEX 中)在並行工作節點級別評估這些函式時似乎不起作用?因此,我並不優雅的解決方法是在每次退出並重新進入 PARFOR 迴圈例項時關閉並重新啟動並行作業(向並行工作節點發送關閉和重新啟動訊號需要幾秒鐘)。這樣,這些並行執行的大型 GLPKMEX 作業對記憶體的大致需求保持恆定。”

華夏公益教科書