Д.В. Павлов, Д.С. Петров
8
Инженерный журнал: наука и инновации
# 8·2016
Рис. 3.
Фрагмент описания модели на основе словарей
Для обработки такой структуры данных использовался ориги-
нальный алгоритм, рекурсивно обходящий все вложенные словари,
вызывающий расчетные подпрограммы и выполняющий обмен
переменными, предусмотренный механизмом ОС. Такой подход
является наглядным, но обладает сравнительно низким быстродейст-
вием, поскольку предусматривает большое число операций поиска по
словарю и рекурсивных вызовов подпрограммы обхода структуры
модели, а для использования совместно с алгоритмами, реализован-
ными в библиотеке SciPy, требует преобразования ВС из многократно
вложенного словаря в линейный вектор типа
numpy.array
.
С помощью профилировщика cProfile, входящего в состав
стандартной библиотеки языка Python, был проведен анализ
быстродействия реализованной программы.
На рис. 4 видно, что большая часть вычислительных ресурсов
расходуется на перечисленные выше вспомогательные операции. Для
увеличения оперативности вычислений в рамках предлагаемой
работы разработан новый подход к организации вычислений и ПО на
его основе.