75 views (last 30 days)

Show older comments

I learned the concept of multi-threaded mex from undocumentedmatlab. (It seems this website is unaccessible now ...)

I am wondering if I can call a multi-threaded mex in parfor-loop.

My current code looks like

parfor k=1:1e6

result(k) = mex_wrapper(data(k));

end

mex_wrapper.c looks like

double calculate()

{

int N=50;

for (i=0;i<N;i++)

{

//...

}

}

void mexFunction()

{

calculate();

}

The iterations inside calculate() are independent, so I want to change the sub-routine calculate() to support multi-thread.

Although I am running parfor in process-based-environments, I am not sure if multi-threaded mex would confict with parfor.

So can I use multi-threaded mex in parfor? And would I get some speed-up by doing so?

Edric Ellis
on 4 Jan 2021

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!