【发布时间】:2012-04-04 10:01:12
【问题描述】:
我正在用 C++ 开发一个应用程序。该应用程序的组件之一使用 Matlab(通过 Matlab 引擎)进行数据处理。同时,数据采集系统正在将数据流式传输到磁盘。有时,在密集的 Matlab 处理期间,采集系统会崩溃。通过将 Matlab 的处理器亲和性设置为可用处理器的子集,这个问题得到了解决。然而,由于应用程序每天启动几次,并且在多台机器上,每次手动设置亲和度并不方便。通过快捷方式的命令行设置处理器关联的技巧不起作用,因为引擎是从我的应用程序中启动的,而不是通过快捷方式。我一直在寻找一种以编程方式设置亲和力的方法,但收效甚微。
我考虑过以下选项(按优先顺序排列):
- 在引擎启动时,从应用程序中为 matlab 引擎指定处理器亲和性。
- 为 matlab 引擎指定默认处理器关联,与完整的 Matlab 应用程序本身分开。
- 作为最后的手段,为 Matlab 设置默认关联(引擎和非引擎使用)。这是最不可取的,因为 Matlab 在部署机器上用于其他目的,最好不要将其限制为其他用途。
是否可以在我的应用程序中设置处理器关联,如果可以,如何设置?如果没有,解决这个问题的正确方法是什么?欢迎对这些选项或其他建议/解决方案提出任何建议。
【问题讨论】:
标签: c++ matlab windows-7 affinity matlab-engine