墨西哥人OpenMP C代码

22日视图(30天)
“徐
“徐 2019年1月22日
编辑: sjhstone 2020年8月19日
你好,
我试图使用2018年Matlab OpenMP。我的代码非常简单,叫做testOpenMP.c。
我通过墨西哥人- v testOpenMP成功编译的代码。c CFLAGS = " $ CFLAGS -fopenmp " LDFLAGS = " $ LDFLAGS -fopenmp”
然而,我们我运行的编译墨西哥人扩展输入testOpenMP Matlab命令窗口。它总是崩溃了。
你知道如何正确编译这样的openmp c代码并运行它?
谢谢,
#包括“mex.h”
#包括“math.h”
#包括“文件”
#包括< omp.h >
无效mexFunction (
intnargout,
mxArray* pargout [],
int输入参数个数,
常量mxArray * pargin[]
){
intthread_count = 32;
#编译指示omp并行违约(没有)
(int i = 0;我< 32;我+ +)
{
printf (“你好,从% d \ n”,我);
}
}
5个评论
Sushant Mahajan
Sushant Mahajan 2019年5月4日
你找到任何解决方案吗?我面临同样的问题一个FORTRAN子例程使用墨西哥人配置一个gfortran-6编译器。
它运行良好时编译没有-fopenmp国旗,但MATLAB关闭后调用子程序时使用-fopenmp国旗在编译。这一切发生的时候,即使我不使用任何OMP_PARALLEL(相当于C # pragma omp并行)构造代码。

登录置评。

答案(2)


sjhstone
sjhstone 2020年8月19日
编辑:sjhstone 2020年8月19日
printf和mexPrintf不是线程安全的,应该避免在多线程OpenMP墨西哥人C代码。
你可以获得更多的信息 https://walkingrandomly.com/?p=1795

类别

找到更多的在从MATLAB编写C函数调用(墨西哥人文件)帮助中心文件交换

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!