我的 .Net 应用程序正在使用 Matlab 组件运行时 (MCR) 来处理一些繁重的数字运算库。我想知道的一件事是,MCR 能否利用现代处理器的多核特性?
这个问题对我来说很重要,因为如果 MCR 已经支持多核,我就不必自己使用 PLINQ 或其他技术来进行并行计算。事实上,我最好不要这样做,因为在一层之上的另一层并行性可能会在创建线程时浪费一些开销。
我的 .Net 应用程序正在使用 Matlab 组件运行时 (MCR) 来处理一些繁重的数字运算库。我想知道的一件事是,MCR 能否利用现代处理器的多核特性?
这个问题对我来说很重要,因为如果 MCR 已经支持多核,我就不必自己使用 PLINQ 或其他技术来进行并行计算。事实上,我最好不要这样做,因为在一层之上的另一层并行性可能会在创建线程时浪费一些开销。
从MATLAB support,看起来可能相关的信息:
如果在您使用 MATLAB Compiler、MATLAB Builder JA、MATLAB Builder EX 或 MATLAB Builder NE 构建可分发应用程序或组件时启用了多线程,则该设置以及您的所有 MATLAB 首选项设置将在您编译的应用。
我想你也可以通过编写一个你知道多线程启用与禁用设置的执行时间的小定时应用程序来测试它是否属实。