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