В этом примере показано, как сгенерировать код С для 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
доступны ядра, итерации выполняются на ядрах, доступных во время вызова.