Matlab crashes using mex-Function and openMP
2 次查看(过去 30 天)
显示 更早的评论
I have a problem using matlab mexfunction and openMP instructions. I found some related topics but none of them were able to help me.
I want to use openMP with a mex-Function to create a .mexw64 file. But when i use my matlab function, matlab crashes in a brutal way.
Theses are my codes:
C++ code
#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", N);
}
Matlab code:
clear all, close all, clc;
testopenMP();
clear mex;
When i call my function testopenMP matlab crashes. But if I comment the "#pragma omp parallel" instruction, everything work fine:
#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", N);
}
Another important point, with the pragma omp parallel intruction, sometimes the program works, and sometimes it crashes...
Do you have any ideas of what crashes matlab ? Any help is welcolme
4 个评论
Matthew Hopcroft
2020-4-7
I just discovered that having a mexPrintf statement inside a OMP PARALLEL construct causes the program to crash. Move the print statement outside the parallel construct and it runs fine.
Junda
2024-10-8
I met the same issue. Seems like MEX does not support mexPrintf inside OpenMP parallel region. Litterally can't find a way to output any information inside parallel region.
回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!