Оптимизация алгоритма расчета моделей…
Инженерный журнал: наука и инновации
# 8·2016 9
Рис. 4.
Результаты анализа быстродействия
первой версии расчетной программы:
1
— поиск по словарю;
2
— подготовка массива для
вызова функции коррекции ВС по значениям невязок;
3
— вызовы подпрограммы обхода структуры модели;
4
— вызов расчетных подпрограмм;
5
— работа
функции коррекции ВС по значениям невязок;
6
—
остальные операции; (
1
–
3
— вспомогательные операции)
Предлагаемый подход к организации вычислений.
В основе
нового подхода лежит перенос операций по анализу структуры мо-
дели на этап загрузки модели и хранение параметров в линейных
массивах. Для сокращения расходов процессорного времени на
вспомогательные операции при выполнении расчетов для параметров
одного и того же типа сформированы единый линейный массив, со-
держащий ВС
,
y
подпрограммы для вычисления
( )
,
f y
( )
F y
и
( )
g y
полностью и единый перечень копируемых параметров, приведенных
в описании ОС.
Для реализации данного подхода потребовалось решение
некоторых специфических задач. В работах [10, 11] фрагменты
некоторых классов содержат параметры-массивы, в то время как для
алгоритма решения системы уравнений каждый параметр должен
быть скалярной величиной. При разработке алгоритма анализа
структуры модели определили, что каждый элемент такого массива
относится к своей составной части модели и может быть выделен в
отдельную переменную. Например, фрагмент, моделирующий узел
электрической цепи, содержит массив параметров, в котором
находятся значения тока во всех присоединенных резисторах; в этом
массиве каждому элементу можно поставить в соответствие
фрагмент, моделирующий соответствующий присоединенный к
рассматриваемому узлу резистор.
Данная задача решена следующим образом: в алгоритм анализа
структуры модели заложена функциональность, позволяющая
создавать и использовать такие переменные, кроме того, реализованы