В этом примере показано, как сгенерировать код С для алгоритма MATLAB®, который содержит parfor- цикл.
Запишите функцию MATLAB, которая содержит parfor- цикл. Например:
function a = test_parfor %#codegen a=ones(10,256); r=rand(10,256); parfor i=1:10 a(i,:)=real(fft(r(i,:))); end
Сгенерируйте код С для test_parfor. В командной строке MATLAB, введите:
codegen -config:lib test_parfor
Поскольку вы не задавали максимальное количество потоков, чтобы использовать, сгенерированный код C выполняет итерации цикла параллельно на доступном количестве ядер.
Чтобы задать максимальное количество потоков, перепишите функциональный test_parfor можно следующим образом:
function a = test_parfor(u) %#codegen a=ones(10,256); r=rand(10,256); parfor (i=1:10,u) a(i,:)=real(fft(r(i,:))); end
Сгенерируйте код С для test_parfor. Используйте -args 0 указывать что вход, u, скаляр дважды. В командной строке MATLAB, введите:
codegen -config:lib test_parfor -args 0
В сгенерированном коде, итерациях parfor- цикл, на котором работают самое большее количество ядер, заданных входом, u. Если меньше, чем u ядра доступны, итерации работают на ядрах, доступных во время вызова.