Ускорение симуляций модели и исследований

Что такое ускорение?

Обычно, при симуляции или анализе модели в SimBiology®, модель описывается в MATLAB® код. Можно ускорить симуляцию путем преобразования модели в скомпилированный код С, который выполняется быстрее. Поскольку этот шаг компиляции имеет маленькое время наверху, ускорение не рекомендуется для отдельных симуляций маленьких моделей. Однако для больших моделей, или для повторных симуляций во время анализа, ускорение может обеспечить значительное увеличение скорости, которое перевешивает маленькое время наверху.

Когда ускориться

Функциональность, чтобы ускорить симуляции выполняет оптимально при следующих условиях:

  • Выполнение повторенных симуляций с различными начальными условиями

  • Запуская очень длинные симуляции (например, симуляции, которые занимают больше времени, чем минута, чтобы запуститься),

Необходимые условия для ускорения симуляций и исследований

Чтобы подготовить ваши модели к ускоренным симуляциям, установите и настроить компилятор:

  1. Установите компилятор C (если вы уже не установлены в вашей системе). Для текущего списка поддерживаемых компиляторов см. Поддерживаемые и Совместимые Компиляторы.

  2. Убедитесь, что любые пользовательские функции в вашей модели могут использоваться для генерации кода из MATLAB, таким образом, они могут преобразовать в скомпилированный C. Для получения дополнительной информации смотрите Язык, Функцию и Поддержку объектов для генерации C и Кода С++ (MATLAB Coder) или свяжитесь с MathWorks Technical Support.

Примечание

  • На Windows®, если вы не установили другой компилятор, SimBiology использует lcc-win64 компилятор для ускорений модели. Если вы установили другой поддерживаемый компилятор, он будет выбран автоматически. Для лучшей эффективности ускоряющей функциональности можно хотеть установить поддерживаемый компилятор кроме lcc-win64, и это будет выбрано автоматически.

Ускорьте симуляции программно

Использование sbioaccelerate если вы ускоряете модель SimBiology. Для a SimFunction object и экспортируемая модель (SimBiology.export.Model), используйте соответствие accelerate метод.

Используя sbioaccelerate

Следуйте за двухступенчатым процессом для ускорения.

  1. Запущенный sbioaccelerate подготовить вашу модель к ускоренным симуляциям. Используйте те же входные параметры, с которыми вы планируете использовать sbiosimulate на следующем шаге. Например:

    sbioaccelerate(model,configset,doses);

    Для очень большой модели этот шаг может занять минуту или дольше завершаться.

  2. Запущенный sbiosimulate с теми же входными параметрами, с которыми вы использовали sbioaccelerate. Например:

    simdata = sbiosimulate(model,configset,doses);

Если вы передаете в массиве доз к sbioaccelerate, вы можете симулировать модель с помощью любого подмножества этих доз и не должны запускать ускорение снова.

Для проиллюстрированных примеров смотрите следующее.

Используя ускоряются

A SimFunction объект автоматически ускоряется при первом функциональном выполнении. Следовательно не необходимо ускорить модель, прежде чем вы создадите объект. Однако вручную ускорьте использование accelerate метод объекта, если вы хотите ускоренный в ваших приложениях развертывания.

Для экспортируемой модели смотрите accelerate.

Когда повторно выполнить ускорение

Если вы делаете какие-либо модификации к модели, такие как изменения в реакциях или добавляющих событиях, необходимо повторно выполнить ускорение перед рабочими симуляциями.

Однако существуют исключения. Вы не должны ускоряться снова, если вы вносите изменения в:

Ускорьте Симуляции с помощью SimBiology Model Analyzer

Можно включить ускорение модели в приложении SimBiology Model Analyzer путем установки флажка Prepare the model for accelerated simulation на шаге Model программы.

Поиск и устранение проблем ускоренные симуляции

Если у вас есть пользовательские функции, используйте персистентные переменные только для тех (постоянных) переменных, что вы не хотите повторно вычислять или перезагружать каждый вызов функции. Причина состоит в том, что во время ускоряющего процесса, 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.

Смотрите также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте