


№ 5 (2024)
ПАРАЛЛЕЛЬНОЕ И РАСПРЕДЕЛЕННОЕ ПРОГРАММИРОВАНИЕ
Теоретические основы математического аппарата реализации параллельных вычислений в системах автоматизированного проектирования
Аннотация
Цель работы – разработка математического аппарата и вычислительных алгоритмов реализации параллельных вычислений в системах геометрического моделирования и автоматизированного проектирования. Выполнен анализ существующих подходов к реализации параллельных вычислений в САПР. В результате установлено, что для большинства систем информационного моделирования и автоматизированного проектирования отсутствует поддержка параллельных вычислений на уровне геометрического ядра. Предложена концепция разработки геометрического ядра САПР, основанного на инвариантах параллельного проецирования геометрических объектов на оси глобальной системы координат, которая объединяет в себе потенциал конструктивных методов геометрического моделирования, способных обеспечить распараллеливание геометрических построений по задачам (message passing), и математического аппарата “Точечное исчисление”, способного реализовать распараллеливание по данным за счет покоординатного расчета (data parallel). Использование покоординатного расчета точечных уравнений позволяет не только распараллелить вычисления по координатным осям, но и обеспечить согласованность вычислительных операций по потокам, что значительно уменьшает простой вычислений и оптимизирует работу процессора для достижения максимального эффекта от использования параллельных вычислений.



Совместное использование сопрограмм и событий для программирования встроенных систем
Аннотация
Предложена новая методология построения программ для встроенных систем реального времени. Программа, написанная на языке C/C++, исполняется без помощи операционной системы и позволяет реализовать как событийно-ориентированный подход, так и параллельное выполнение с помощью сопрограмм. Обработка событий и выполнение сопрограмм производится в ядре мягкого реального времени на уровне приоритета программных прерываний. Сопрограмма рассматривается как частный случай события, где возобновляемая функция сопрограммы выполняется в качестве обработчика события. Для возобновления сопрограммы после приостановки ее событие повторно отправляется на обработку, до тех пор пока возобновляемая функция не будет полностью выполнена. Таким образом, в ядре происходят как обработка простых событий, так и планирование выполнения сопрограмм. Событиям могут назначаться различные приоритеты обработки. Ядро мягкого реального времени может быть расширено для работы в симметричной многопроцессорной системе. Сочетание сопрограмм и простых событий позволяет реализовать технологию fork/join, а также средства параллельного программирования, сходные с инструментами языков Go и occam. Новая методология была воплощена на языке C++ в виде библиотеки DORSECC, адаптированной для различных процессоров ARM и Blackfin. С ее помощью были созданы встроенные вычислительные системы реального времени, применяемые в серийно выпускаемых машинах для сортировки банкнот. Эти системы используются как для распознавания образов методом каскада классификаторов, так и для управления датчиками и приводами механизма с применением автоматного программирования. Их общее количество в эксплуатации превысило 20000. Ядро мягкого реального времени в указанных системах обеспечивает среднюю длительность обработки события на уровне десятков микросекунд при субмикросекундных накладных затратах.



КОМПЬЮТЕРНАЯ ГРАФИКА И ВИЗУАЛИЗАЦИЯ
Определение степени сложности объектов на изображениях
Аннотация
Предложен новый метод оценки сложности геометрических фигур (пятен), учитывающий внутреннюю структуру пятен, а не только их внешний контур. Задача по вычислению степени сложности объектов разделена на составляющие: сегментация пятен и оценка сложности изолированных пятен. Новый метод обладает относительно низкой вычислительной сложностью по сравнению с рассмотренными в работе альтернативными методами. С помощью нового метода был создан алгоритм на основе параллельных вычислений языка CUDA для графических ускорителей (видеокарт), что дополнительно повышает быстродействие нашего метода. Проведен качественный и количественный анализ существующих (альтернативных) методов, выявлены их преимущества и недостатки по сравнению с нашим методом и друг с другом. Реализованный на основе нового метода алгоритм апробирован как на искусственных, так и на реальных изображениях.



Универсальный алгоритм дискретизации бихроматических двумерных графических кодов
Аннотация
Представляются математические основы и алгоритмы распознавания бихроматических двумерных графических кодов вне зависимости от их вида (QR-коды, DataMatrix, GridMatrix и др.). Этапы достижения результата включают в себя обнаружение кода, локализацию его произвольным четырехугольником, трансформацию четырехугольника в канонический квадрат, построение сетки элементов (модулей) квадратного кода и заполнение ее последовательностью битов. Показано, что формулы преобразования перспективы позволяют трансформировать локализованные четырехугольные области в канонические квадраты с допустимым для дальнейшей обработки уровнем погрешности. Плоская сетка элементов квадратного кода формируется на основе поиска экстремумов производных от распределения интенсивности пикселей изображения квадрата по осям 0х и 0y. В алгоритме заполнения ячеек сетки (модулей кода) последовательностью 0 и 1 используется информация о средней интенсивности каждой такой ячейки. В завершение статьи проводится тестирование алгоритмов на множестве реальных изображений двумерных кодов, исследуются ограничения предложенных алгоритмов.



ТЕОРИЯ ПРОГРАММИРОВАНИЯ: ФОРМАЛЬНЫЕ МОДЕЛИ И СЕМАНТИКА
Формальная спецификация и верификация требований в архитектуре и строительстве на основе языка моделирования EXPRESS
Аннотация
В настоящее время цифровые технологии моделирования зданий, сооружений и инфраструктуры успешно применяются в международной и российской практике реализации сложных строительных проектов и масштабных программ. Вместе с тем, реализуемый во многих странах переход к машиночитаемым стандартам с целью повышения качества проектной документации и автоматизации ее проверки сталкивается с серьезными методологическими и инструментальными проблемами. Прежде всего они связаны со сложностью самих цифровых моделей, а также с разнообразием требований, формулируемых на естественных языках и предъявляемых к моделям на государственном, региональном, ведомственном и корпоративном уровне. Предпринимаемые попытки создания реестров требований и программных инструментов для их ведения и использования, как правило, носят специализированный характер и не обеспечивают необходимую полноту, нормализацию, согласованность, взаимосвязанность, однозначность, прослеживаемость и проверяемость описаний требований. Конструктивным, в связи с этим, представляется применение формальных методов спецификации и верификации требований, зарекомендовавших себя в системной и программной инженерии. В работе проводится сравнительный анализ программных инструментов для автоматизированной проверки нормативных требований в области строительства. Отмечается возросшая популярность инструментов, ориентированных на международные стандарты IFC (Industry Foundation Classes), IDS (Information Delivery Specification) и обеспечивающих контроль полноты объектного и атрибутного состава моделей, а также уточнение допустимых областей значений. Вместе с тем, стандарт IDS не формализован и не предусматривает задание требований, выражаемых произвольными алгебраическими условиями. Перспективным для формальной спецификации и верификации требований к цифровым моделям в строительстве представляется применение языка моделирования объектно-ориентированных данных EXPRESS, на котором специфицирована и информационная схема IFC. В качестве обоснования показывается представимость IDS спецификаций логическими выражениями и функциями EXPRESS, а также возможность задания произвольных алгебраических условий в виде декларативных правил языка EXPRESS. В качестве иллюстраций предлагаемого подхода приводятся примеры формализации строительных нормативов и сводов правил РФ, предъявляемых к безопасности зданий, сооружений и процессов. Также обсуждаются возможности гармонизации предлагаемого формального подхода со стандартом IDS в результате определения новых паттернов для представления локальных, уникальных и глобальных правил языка EXPRESS.


