Представим, что у вас есть алгоритм, который годами работает и уже прошел проверку. Модель переезжает в Engee. Переписывать алгоритм с нуля?
Необязательно.
1️⃣Если сохранился Cи код, его можно подключить к модели через блок C Function. Если исходной реализации нет или алгоритм нужно переработать, его можно собрать в отдельный модуль на Julia, протестировать и затем подключить к Engee Function.
В проекте Буфер с внешним сбросом C Function реализует циклический буфер для потоковых данных. Состояние блока хранится в рабочих переменных: отдельно выделены буфер данных и счётчик позиции. Память заранее выделяется для каждого экземпляра блока, поэтому алгоритм работает без динамического выделения памяти.
Сам алгоритм остается на Си, а модель Engee используется для его проверки. Для буфера создана тестовая обвязка со входными данными и сигналом сброса, после чего запускается симуляция и анализируются результаты.
2️⃣Но исходного Cи кода может не быть. Тогда алгоритм приходится реализовывать заново. Для сложной логики не обязательно помещать весь код непосредственно в
Engee Function.В проекте Продвинутая разработка блоков на основе Engee Function алгоритм вычисления расстояний между наборами данных вынесен в отдельный модуль Julia. Модуль отдельно тестируется: проверяется обычный вызов функции, обработка несовместимых размерностей и корректность результата. Для оценки производительности измеряются время выполнения, объём выделяемой памяти и количество аллокаций.
🔧 Затем модуль подключается к
Engee Function. Ошибки из вычислительной функции можно обрабатывать отдельно: например, при несовпадении размерностей возникает DimensionMismatch, который передается в диагностику Engee и останавливает симуляцию. В итоге при миграции можно сохранить существующий Cи код или вынести новую реализацию в отдельный тестируемый модуль. При этом алгоритм остается частью модели: его можно запускать на модельных данных, проверять результаты, измерять производительность и обрабатывать ошибки в рамках одного инженерного цикла.
О том, как работать с существующим кодом и переносить алгоритмы в Engee, поговорим в День Engee 2026 в отдельной секции.
➡️ Программа и регистрация
