我正在学习如何在matlab中使用mex文件。
我目前在 Windows 10 上使用 MATLAB R2016a 。
我尝试像这样使用OpenMP
#include "mex.h"
#include <omp.h>
void mexFunction ( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] )
{
int nthreads,tid;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
if(tid==0){
nthreads = omp_get_num_threads();
mexPrintf("Number of Threads : %d\n",nthreads);
}
mexPrintf("Echo from %d\n",tid);
}
return;
}
如果我使用 Visual Studio Professional 2015 ,则效果很好。
但是,如果我使用 MinGW64编译器,则无效。
然后我发现有些编译器没有提供openMP功能。
是否有支持mex
和omp
的免费编译器?