Specify Maximum Number of Threads in parfor-Loops - MATLAB & Simulink (original) (raw)
Main Content
This example shows how to specify the maximum number of threads to use for a parfor
-loop. Because you specify the maximum number of threads to use, the generated MEX function executes the loop iterations in parallel on as many cores as available, up to the maximum number that you specify. If you specify more threads than there are cores available, the MEX function uses the available cores.
- Write a MATLABĀ® function,
specify_num_threads
, that uses one input to specify the maximum number of threads to execute aparfor
-loop in the generated MEX function. For example:
function y = specify_num_threads(u) %#codegen
y = ones(1,100);
% u specifies maximum number of threads
parfor (i = 1:100,u)
y(i) = i;
end
end - Generate a MEX function for
specify_num_threads
. Use-args {0}
to specify that inputu
is a scalar double. Use-report
to generate a code generation report. At the MATLAB command line, enter:
codegen -report specify_num_threads -args {0}codegen
generates a MEX function,specify_num_threads_mex
, in the current folder. - Run the MEX function, specifying that it try to run in parallel on four threads. At the MATLAB command line, enter:
specify_num_threads_mex(4)
The generated MEX function runs on up to four cores. If less than four cores are available, the MEX function runs on the maximum number of cores available at the time of the call.