RUS  ENG
Полная версия
ЖУРНАЛЫ // Журнал Белорусского государственного университета. Математика. Информатика // Архив

Журн. Белорус. гос. ун-та. Матем. Инф., 2023, том 2, страницы 63–79 (Mi bgumi434)

Теоретические основы информатики

Многопоточное программирование и кеширование в рамках микросервисной архитектуры для исследования оболочечных конструкций

Е. А. Буйволов, А. А. Семенов

Санкт-Петербургский государственный архитектурно-строительный университет, ул. 2-я Красноармейская, 4, 190005, г. Санкт-Петербург, Россия

Аннотация: Статья посвящена вопросу разработки высокопроизводительного программного обеспечения для расчета тонкостенных оболочечных конструкций, процесс деформирования которых носит существенно нелинейный характер и требует больших вычислительных ресурсов. Использована математическая модель типа Тимошенко (Миндлина – Рейснера), учитывающая геометрическую нелинейность, ортотропию материала, поперечные сдвиги и наличие ребер жесткости. Модель записана в виде функционала полной потенциальной энергии деформации и может быть применена для исследования конструкций различной геометрической формы. Для осуществления расчета использованы метод Ритца и метод Ньютона. При программной реализации показано, каким образом от сервисной архитектуры получилось перейти к эффективной микросервисной архитектуре, заменив один из недостаточно производительных Java-модулей на Python-модуль. Проведена оптимизация вычислительного алгоритма для реализации многопоточного расчета всех стадий вычисления, включая метод Ньютона. Выполнены замеры производительности расчета при различных подходах к реализации многопоточного расчета, а именно parallelStream и ForkJoinPool. Затронуто использование концепции MapReduce в рамках фреймворка Java Stream API. Таким образом, разработано эффективное микросервисное приложение, позволяющее моделировать процесс деформирования оболочечных конструкций, в том числе усиленных ребрами жесткости. Полученный в клиентской части приложения графический результат зависимости прогиба от нагрузки позволяет судить о корректности численного решения. Показана эффективность предложенного алгоритма по сравнению с подходом, реализованным в математическом пакете Maple (на основе анализа устойчивости пологой оболочки двоякой кривизны).

Ключевые слова: оболочки; устойчивость; микросервисная архитектура; многопоточное программирование; Python; Vue.js; Maple.

УДК: 539.3+004.02+004.942

Поступила в редакцию: 11.01.2023
Исправленный вариант: 19.03.2023
Принята в печать: 02.06.2023

DOI: 10.33581/2520-6508-2023-2-63-79



© МИАН, 2024