Multi-threading in MATLAB

I have read MATLAB's info on multi-threading and how it is in-built in certain functions. However, my requirement is different. Say, I have 3 functions: fun1(data1), fun2(data2), fun3(data3).... Can I implement multi-threading between these functions? I actually have 300+ functions using a lot of data. Multi-threading may help me cut down a lot of the time. Please suggest a command or something which I can further research on. Thanks!

Answers


If you want to run a batch of different functions on different processors, you can use the Parallel Computing Toolbox, more specifically, a parfor loop, but you need to pass the functions as a list of handles.

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: Starting with R2015a matlabpool function has been removed from Matlab, you need to call parpool instead.


Try looking at the Parallel Computing Toolbox. (I'm unfortunately not too familiar with it, but that seems to be the right place.) Look at gather and parallel for-loops.


Need Your Help

Endpoints API - protorpc validation error

python google-app-engine google-cloud-endpoints endpoints-proto-datastore protorpc

I'm getting some weird errors from protorpc when I use endpoints. In this code:

Could not open input file app/console

php symfony

I installed wamp server and a copy of the Symfony2 framework. I am trying to create a Bundle, using the following command: