По умолчанию MATLAB® Coder™ генерирует код, который может запускать parfor
-цикл на нескольких потоках. Для лечения parfor
-циклы как циклы для, которые выполняются в одном потоке, отключить parfor
одним из следующих методов:
При помощи codegen
функция со -O disable:openmp
опция в командной строке.
При помощи объекта строения генерации кода со свойством EnableOpenMP
установите значение false. Для примера:
cfg = coder.config('lib'); cfg.EnableOpenMP = false; codegen myFunction -config cfg
Путем установки Enable OpenMP library if possible на No
под All Settings вкладкой в диалоговом окне параметров проекта.
Отключите parfor, если хотите:
Сравните времена выполнения последовательной и параллельной версий сгенерированного кода.
Расследовать отказы. Если параллельная версия сгенерированного кода не работает, отключите parfor
и сгенерируйте последовательную версию для облегчения отладки.
Используйте компиляторы C, которые не поддерживают OpenMP.