Подтвердить что ты не робот

Многопоточность в MATLAB

Я прочитал информацию MATLAB о многопоточности и о том, как она встроена в определенные функции. Однако мои требования разные. Скажем, у меня есть 3 функции: fun1 (data1), fun2 (data2), fun3 (data3).... Могу ли я реализовать многопоточность между этими функциями? На самом деле у меня есть более 300 функций с большим количеством данных. Многопоточность может помочь мне сократить время. Пожалуйста, предложите команду или что-то, что я могу продолжить. Спасибо!

4b9b3361

Ответ 1

Если вы хотите запустить партию различных функций на разных процессорах, вы можете использовать Parallel Computing Toolbox, точнее, parfor loop, но вам нужно передать функции в виде списка дескрипторов.

funList = {@fun1,@fun2,@fun3};
dataList = {data1,data2,data3}; %# or pass file names 

matlabpool open 

parfor i=1:length(funList)
    %# call the function
    funList{i}(dataList{i});
end

Edit: Начиная с R2015a matlabpool функция была удалена из Matlab, вам нужно вместо этого вызвать parpool.