Доброго времени суток.
Может быть кто то сталкивался с такой проблемой, что .mex функции в matlab не запускаются в нескольких потоках.
Вот примерный код:
Vals=[];
parfor ii=1:100;
a=myFun_mex(y',ii*2,ii);
Vals=[Vals; a];
end
При выполнении запускается, как и положено, 4 ядра, но на 100% загружается только одно из них. Соответственно, скорость вычислений у меня в 4 раза меньше ожидаемой, т.е. распараллеливание ничего не даёт, абсолютно.
Тем не менее, эта же программа (myFun), реализованная в виде .m - функции Matlab работает вполне корректно. Загружаются все 4 ядра, производительность увеличивается в 4 раза. В чём тут может быть дело?