Matlab函数和parallel_invoke

时间:2013-08-31 08:21:44

标签: c++ matlab parallel-processing matlab-deployment matlab-compiler

在我的项目中,我有很多MATLAB函数。对于每个函数,我在应用程序启动时调用Initialize函数。我尝试使用parallel_invoke调用此函数。我尝试了几次,总之需要更多时间,没有这个代码。有人可以解释一下吗? MATLAB或Initialize函数中是否有特定的东西?

1 个答案:

答案 0 :(得分:1)

Matlab Runtime只有一个解释器线程,因此并行调用Matlab函数不会获得任何东西:当第一个函数A被调用时,MCR获取一个锁,只在该函数退出时释放它。在此期间调用另一个函数B导致尝试获取锁,然后显然只是阻塞直到A结束。您认为它占用更多时间的原因可能是由于锁定/ parallel_invoke的开销。

对于我称之为Initialize function 的每个函数,我不确定你对的意思:除非你使用多个Matlab dll(它的性能不如单个dll)你只需要称之为初始化/终止一次。