Обычно при моделировании или анализе модели в SimBiology ® модель выражается в коде MATLAB ®. Можно ускорить моделирование, преобразовав модель в скомпилированный код C, который выполняется быстрее. Поскольку этот этап компиляции имеет небольшие временные издержки, ускорение не рекомендуется для отдельных моделирований небольших моделей. Однако для больших моделей или для повторного моделирования во время анализа ускорение может обеспечить значительное увеличение скорости, которое перевешивает небольшие временные накладные расходы.
Функции ускорения моделирования оптимально выполняются при следующих условиях:
Выполнение повторного моделирования с различными исходными условиями
Выполнение очень длинного моделирования (например, моделирование, выполнение которого занимает больше минуты)
Чтобы подготовить модели к ускоренному моделированию, установите и настройте компилятор:
Установите компилятор C (если он еще не установлен в системе). Текущий список поддерживаемых компиляторов см. в разделе Поддерживаемые и совместимые компиляторы.
Убедитесь, что любые пользовательские функции в модели могут использоваться для генерации кода из MATLAB, чтобы они могли преобразовываться в скомпилированные C. Дополнительные сведения см. в разделе Поддержка языка, функций и объектов для генерации кода C и C++ (MATLAB Coder) или обратитесь в службу технической поддержки MathWorks.
Примечание
Если в Windows ® не установлен другой компилятор, SimBiology использует компилятор lcc-win64 для ускорения модели. Если установлен другой поддерживаемый компилятор, он будет выбран автоматически. Для повышения производительности функции ускорения можно установить поддерживаемый компилятор, отличный от lcc-win64, и он будет выбран автоматически.
Использовать sbioaccelerate если вы ускоряете модель SimBiology. Для SimFunction object и экспортированная модель (SimBiology.export.Model), используйте соответствующий accelerate способ.
Выполните двухшаговый процесс ускорения.
Управляемый sbioaccelerate для подготовки модели к ускоренному моделированию. Использовать те же входные аргументы, которые планируется использовать с sbiosimulate на следующем шаге. Например:
sbioaccelerate(model,configset,doses);
Для очень большой модели выполнение этого шага может занять минуту или больше времени.
Управляемый sbiosimulate с теми же входными аргументами, которые вы использовали с sbioaccelerate. Например:
simdata= sbiosimulate(model,configset,doses);
Если передать в массиве доз sbioaccelerate, вы можете смоделировать модель, используя любое подмножество этих доз, и не нужно запускать ускорение снова.
Проиллюстрированные примеры см. в следующих разделах.
A SimFunction объект автоматически ускоряется при выполнении первой функции. Поэтому нет необходимости ускорять модель перед созданием объекта. Тем не менее, вручную ускорить использование accelerate метод объекта, если требуется его ускорение в приложениях развертывания.
Для получения информации об экспортированной модели см. раздел accelerate.
Если в модель вносятся какие-либо изменения, такие как изменения реакций или добавление событий, перед выполнением моделирования необходимо повторно запустить ускорение.
Однако есть и исключения. Вам не нужно снова ускоряться, если вы вносите изменения в:
Любые варианты
InitialAmount свойство вида
Capacity свойства отсеков
Value свойство параметров
StopTime свойство configset
OutputTimes свойство SolverOptions
Time имущество ScheduleDose
Interval, RepeatCount, и StartTime свойства RepeatDose
Ускорение модели можно включить в приложении SimBiology Model Analyzer, установив флажок Подготовить модель для ускоренного моделирования на шаге Модель программы.
Если имеются пользовательские функции, используйте постоянные переменные только для тех (постоянных) переменных, которые не требуется пересчитывать или перезагружать при каждом вызове функции. Причина в том, что в процессе ускорения SimBiology преобразует модель и пользовательские функции в скомпилированный код C. При попытке использовать постоянную переменную для совместного использования данных сгенерированных (или скомпилированных) функций C могут быть получены другие результаты. Например, при использовании постоянной переменной для подсчета количества вызовов функции каждая скомпилированная функция будет иметь отдельный счетчик. Эти постоянные переменные в соответствующих скомпилированных функциях будут отличаться от переменных, используемых в определенной функции MATLAB.
При указании пользовательских функций в выражениях SimBiology может появиться следующее предупреждение, если код несовместим с созданием кода из MATLAB:
The SimBiology Expression and any user-defined functions
could not be accelerated. Please check that these expressions
and any user-defined functions are supported for code generation
as described in the Code Generation from MATLAB documentation.где Expression - любое из следующих значений:
Выражение скорости реакции/правила
Начальное выражение правила назначения
Выражение правила повторного назначения
Выражение триггера события
Выражение функции события
Дополнительные сведения см. в разделе Поддержка языка, функций и объектов для генерации кода C и C++ (кодер MATLAB) или обратитесь в службу технической поддержки MathWorks.
accelerate | accelerate | sbioaccelerate | SimBiology.export.Model | SimFunction object