Matlab使用mex-Function和openMP

时间:2016-06-09 13:05:13

标签: c++ matlab openmp

我在使用matlab mexfunction和openMP指令时遇到问题。我找到了一些相关的主题,但没有一个能够帮助我。

我想使用带有mex-Function的openMP来创建.mexw64文件。但是当我使用我的matlab函数时,matlab会以残酷的方式崩溃。

论文是我的代码:

C ++代码

#include "mex.h"
#include <iostream>
#include <omp.h>

void mexFunction(int nlhs,
    mxArray *plhs[],
    int nrhs,
    const mxArray *prhs[])

{
    #pragma omp parallel default(shared)
    {

    }
    mexPrintf("Hi !\n");
}

Matlab代码:

clear all, close all, clc;

testopenMP();
clear mex;

当我调用我的函数testopenMP时,matlab崩溃了。但是,如果我评论&#34; #pragma omp parallel&#34;一切正常:

#include "mex.h"
#include <iostream>
#include <omp.h>

void mexFunction(int nlhs,
    mxArray *plhs[],
    int nrhs,
    const mxArray *prhs[])

{
    //#pragma omp parallel default(shared)
    {

    }
    mexPrintf("Hi !\n");
}

另一个重要的一点,pragma omp并行指令,有时程序有效,有时会崩溃...... 当我用deboggeur逐步运行程序时,每个人都可以正常工作。我真的输了

你有什么想法崩溃matlab?任何帮助都是welcolme

0 个答案:

没有答案