在运行我编译的多线程mex文件(使用OpenMP)时,我发现了一个令人沮丧的问题。 mex文件的源代码可以在这里找到
https://github.com/fangq/mmc/blob/master/mmc/trunk/src/mmclab.cpp#L123
在Ubuntu框中使用gcc / mex编译并链接了正确的选项。 matlab mex来自matlab 8.2。
当我第一次在matlab中运行它时,它在i7处理器上使用了8个线程,正如预期的那样。但是,如果我在同一个matlab会话中再次运行它,它只使用1个线程!为了使用8个线程,我不得不关闭matlab并重新开始。
我尝试添加" setenv(' OMP_NUM_THREADS',' 8');"在我的脚本中,它没有帮助。我检查了并行偏好,我没有看到任何相关内容。
以前有人遇到过类似的问题吗?
可能出现什么问题?