跳转到内容

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 作业对内存的大致需求保持恒定。”

华夏公益教科书