Долгая компиляция в Simulink
17.02.2021
Добрый день, имеется объемный проект Matlab 2020b Simulink.
Столкнулся с проблемой, что компиляция проекта Simulink происходит достаточно долго, при этом процессор загружается всего на 5-9%, оперативная память на 45-50%.
Процессор: AMD ryzen 9 5900x 4 Ghz
Память: 32 Gb 3333Mhz
Хотелось бы использовать вычислительные мощности компьютера на максимум и ускорить время компиляции проекта. Возможно, как-то возможно подрубить все ядра процессора или использовать параллельные вычисления?
Лучший ответ
Прямых способов ускорить процесс компиляции нет, здесь нужно в каждом отдельном случае разбираться, что так долго компилируется.
Может быть, у вас много кода внутри MATLAB Function, что вызывает в прямом смысле компиляцию этого кода (в таком случае можно использовать coder.extrinsic или Interpreted MATLAB Function).
Может быть, у вас очень большая модель Simscape, который действительно компилируется не очень быстро. В таком случае присмотритесь к последним релизам - в одном из них ускоряли компиляцию Simscape за счет кеширования в slxc.
Наконец почти всегда можно вынести "тяжелую" часть модели в Model Reference, работающую в режиме Accelerator или Rapid Accelerator. В таком случае первый запсук модели будет долгим, а остальные существенно более быстрыми.
Ответы
Здравствуйте, а что вы подразумеваете под компиляцией проекта Simulink?
Тоже интересно, так как в версии 2019b наблюдал следующую картину, модель весом 56 кБ становилась 370 кБ и при старте моделирования на этае обновления модели( или компиляции при режиме моделирования акселерация) время до старто составляло до ескольких минут, причем после перезапуска Matlab первые несколько запусков происходили достаточно быстро но на 5 все поять посторялось.
Лечилось созданием новго файла модели и переносом всего туда.
Также в командном окне выводились сообщения о WebView в модели ( что не понятно).
Спасибо за ваш ответ. Под комплицией подразумевается сборка проекта (Внизу картинки зеленая полоска c подписью Compiling). После компиляции сама симуляция расчитывается быстро.
Прямых способов ускорить процесс компиляции нет, здесь нужно в каждом отдельном случае разбираться, что так долго компилируется.
Может быть, у вас много кода внутри MATLAB Function, что вызывает в прямом смысле компиляцию этого кода (в таком случае можно использовать coder.extrinsic или Interpreted MATLAB Function).
Может быть, у вас очень большая модель Simscape, который действительно компилируется не очень быстро. В таком случае присмотритесь к последним релизам - в одном из них ускоряли компиляцию Simscape за счет кеширования в slxc.
Наконец почти всегда можно вынести "тяжелую" часть модели в Model Reference, работающую в режиме Accelerator или Rapid Accelerator. В таком случае первый запсук модели будет долгим, а остальные существенно более быстрыми.