Обычно, при симуляции или анализе модели в SimBiology®, модель выражается в коде MATLAB®. Можно ускорить симуляцию путем преобразования модели в скомпилированный код С, который выполняется быстрее. Поскольку этот шаг компиляции имеет маленькое время наверху, ускорение не рекомендуется для отдельных симуляций маленьких моделей. Однако для больших моделей, или для повторных симуляций во время анализа, ускорение может обеспечить значительное увеличение скорости, которое перевешивает маленькое время наверху.
Функциональность, чтобы ускорить симуляции выполняет оптимально при следующих условиях:
Выполнение повторенных симуляций с различными начальными условиями
Запуская очень длинные симуляции (например, симуляции, которые занимают больше времени, чем минута, чтобы запуститься),
Чтобы подготовить ваши модели к ускоренным симуляциям, установите и настроить компилятор:
Установите компилятор C (если вы уже не установлены в вашей системе). Для текущего списка поддерживаемых компиляторов см. Поддерживаемые и Совместимые Компиляторы.
Гарантируйте, что любые пользовательские функции в вашей модели могут использоваться для генерации кода из MATLAB, таким образом, они могут преобразовать в скомпилированный C. Для получения дополнительной информации смотрите Язык, Функцию и Поддержку объектов для генерации C и Кода С++ (MATLAB Coder) или свяжитесь с MathWorks Technical Support.
На 32-битных платформах Windows® автоматически установлен компилятор LCC. Однако для лучшей производительности ускоряющей функциональности, можно хотеть установить поддерживаемый компилятор кроме LCC, и это будет выбрано автоматически.
На 64-битных платформах Windows, если вы не установили другой компилятор, SimBiology использует компилятор LCC64 для образцовых ускорений. Если вы установили другой поддерживаемый компилятор, он будет выбран автоматически.
Библиотеки времени выполнения Microsoft® Visual Studio® 2010 должны быть доступными на любом компьютере, запускающем ускоренные модели, сгенерированные с помощью SDK Microsoft Windows.
Если вы планируете перераспределить свои ускоренные модели к другим пользователям MATLAB, уверены, что у них есть те же библиотеки времени выполнения.
Используйте sbioaccelerate, если вы ускоряете модель SimBiology. Для SimFunction object и экспортируемой модели (SimBiology.export.Model), используйте соответствующий метод accelerate.
Следуйте за двухступенчатым процессом для ускорения.
Запустите sbioaccelerate, чтобы подготовить вашу модель к ускоренным симуляциям. Используйте те же входные параметры, которые вы планируете использовать с sbiosimulate на следующем шаге. Например:
sbioaccelerate(model,configset,doses);
Для очень большой модели этот шаг может занять минуту или дольше завершаться.
Запустите sbiosimulate с теми же входными параметрами, которые вы использовали с sbioaccelerate. Например:
simdata= sbiosimulate(model,configset,doses);
Если вы передаете в массиве доз к sbioaccelerate, вы можете моделировать модель с помощью любого подмножества этих доз и не должны запускать ускорение снова.
Для проиллюстрированных примеров смотрите следующее.
Объект SimFunction автоматически ускоряется при первом функциональном выполнении. Следовательно не необходимо ускорить модель, прежде чем вы создадите объект. Однако вручную ускорьте использование метода accelerate объекта, если вы хотите ускоренный в ваших приложениях развертывания.
Для экспортируемой модели смотрите accelerate.
Если вы делаете какие-либо модификации к модели, такие как изменения в реакциях или добавляющих событиях, необходимо повторно выполнить ускорение перед рабочими симуляциями.
Однако существуют исключения. Вы не должны ускоряться снова, если вы вносите изменения в:
Любые варианты
Свойство InitialAmount разновидностей
Свойство Capacity отсеков
Свойство Value параметров
Свойство StopTime configset
Свойство OutputTimes SolverOptions
Свойство Time ScheduleDose
Interval, RepeatCount и свойства StartTime RepeatDose
Каждая встроенная задача в рабочем столе SimBiology позволяет вам задать модель, чтобы анализировать, и можно выбрать, ускорить ли модель. Для получения дополнительной информации смотрите Конфигурирующие Связанные с моделью Настройки.
Если у вас есть пользовательские функции, используйте персистентные переменные только для тех (постоянных) переменных, что вы не хотите повторно вычислять или перезагружать каждый вызов функции. Причина состоит в том, что во время ускоряющего процесса, SimBiology преобразовывает модель и пользовательские функции к скомпилированному коду С. При попытке использовать персистентную переменную, чтобы осуществлять обмен данными через сгенерированный (или скомпилированный) 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.где Выражение является любым следующим:
Скорость реакции / управляет выражением
Начальное выражение правила присвоения
Повторное выражение правила присвоения
Триггерное выражение события
Выражение function события
Для получения дополнительной информации смотрите Язык, Функцию и Поддержку объектов для генерации C и Кода С++ (MATLAB Coder) или свяжитесь с MathWorks Technical Support.
SimBiology.export.Model | SimFunction object | accelerate | accelerate | sbioaccelerate