Заглавная страница
На данном портале размещены и будут размещаться документация и исходные коды, реализующие высокопроизводительную систему моделирования физических полей. Предварительное название системы - CAMaaS (Computer-Aided Modelling as a Service).
Напоминаю, что разработка основных архитектурных компонентов законченного продукта, а также частичная их реализация, уже выполнялась мною в одиночку, поэтому основная проблема сейчас - правильная организация работы и ее распределение в коллективе.
В качестве подхода, который будет использоваться для организации рабочего процесса, будет использован Unified Process (UP). Поскольку уже существуют некоторые наработки, их придется совмещать с артефактами UP, а принципы последнего пока не будут в полной мере выполняться.
Для чтения вики регистрации не требуется (пока), для правок требуется удаленная регистрация.
Git-репозитории проекта. Для доступа на чтение и запись требуется локальная регистрация. Для регистрации высылайте запрос на почту с указанием от кого запрос.
Предварительная документация, полученная автоматизированно с помощью doxygen и, возможно, требующая форматирования и правок, доступна на http://chusov.org/doxygen.
Vision[1]
Объект разработки
Мы разрабатываем недорогое программное решение, которое позволило бы выполнять моделирование физических полей в различных предметных областях, являясь при этом масштабируемым в смысле использования произвольного набора параллельных вычислителей - процессоров [2] и компьютеров.
Positioning
Постановка проблемы
Когда применяются методы компьютерного моделирования адекватность модели моделируемому объекту во многих случаях определяется числом проводимых элементарных модельных вычислений, составляющих эксперимент, числом дискретных компонент, на которые аппроксимируется моделируемые физические явления. Очевидно, что с ростом этих чисел увеличиваются временны̀е и стоимостные издержки, связанные с проведением модельного эксперимента, а функции временных и пространственных издержек напрямую зависят от детализации модели. Поэтому проведение модельных вычислений с высокими требованиями к точности результатов в общем случае требуют больших вычислительных мощностей, предоставляемых высокопараллельными вычислителями.
Другой является проблема узости решаемых системой моделирования задач и, как следствие, высокой стоимости проведения комплексных модельных исследований в различных предметных областях. Существующие системы моделирования слабо адаптируемы или неадаптируемы к различным классам решаемых задач моделирования. Примером слабоадаптируемых систем моделирования является комплекс ANSYS, который имеет некоторое вычислительное ядро, к которому подключаются плагины, спроектированные для решения конкретных модельных задач [3]. Другим подходом к обеспечению адаптируемости моделирующего комплекса является объединение разнородных систем моделирования, реализующих регламентируемые внешнесистемные интерфейсы, в федерации - см. HLA (High Level Architecture) [1] и DIS (Distributed Interactive Simulation)[2]. Понятно, что вопрос стоимости такой федерации, состоящей из купленных независимо друг от друга подсистем, будет по прежнему стоять остро.
Ситуация на рынке ПО
При реализации законченных систем компьютерного моделирования и анализа таких, как Odeon Room Acoustics Software [3], Agilent Technologies EMDS [4], LMS Virtual.Lab Acoustics, ANSYS Maxwell и др., проблема высокой сложности обходится введением ограничений на решаемые задачи (см. раздел 3.1 и главы 6, 10 в Odeon Manual, а также Agilent Electromagnetic Design System: User's Guide, с. 65, с. 85, с. 251): использование упрощенных, идеализированных внешних условий, соответствующие им упрощенные методы моделирования, жесткие ограничения на множества допустимых значений входных параметров систем моделирования, задание низкой предельной сложности модели среды, в которой имитируется анализируемый физический процесс.
Подробная информация об актуальности работы и о результатах анализа существующих систем моделирования приведена в монографии [5].
Место разрабатываемого продукта
Необходимость разработки продукта вытекает из потребностей специалистов предметных областей, связанных с моделированием различных физических полей, в универсальном решении для проведения модельных экспериментов в различных предметных областях, со сколь угодно сложной задачей и степенью аппроксимации моделируемого объекта, различными требованиями ко времени вычислений с одной стороны, и к адекватности результатов моделирования с другой.
Поэтому законченный продукт должен удовлетворять трем принципиальным требованиям:
- Адаптируемость
- Возможность включения в систему дополнительных моделирующих подсистем для расширения области применимости системы в целом, т.е. для решения пользовательских задач в его предметной области - при условии предоставления последним соответствующих программных и аппаратных ресурсов.
- Масштабируемость.
- Возможность выполнения как собственно моделирования, так и сервисных функций большим (изменяемым) количеством параллельных вычислителей.
- Многопользовательское моделирование
- Поддержка многопользовательской работы над одним или множеством модельных проектов, в одной или разных предметных областях, с использованием одной копии разрабатываемого продукта.
Альтернативы и конкурирующие решения
Сюда нужно вставить подробный анализ существующих систем моделирования: ANSYS, Odeod Room Acoustics Software и т.д.
Целевые пользователи
- Пользователь
- Программа предполагает наличие пользователей, в интересах которых на основе имеющегося описания среды распросранения интересующего его поля быстро получить точную картину распределения характеристик этого поля на плоскости или в пространстве, возможно изменяющихся во времени. Пользователь не располагает знаниями в области вычислений или компьютерного моделирования и использует либо существующие на сервере, либо заданные самим пользователем программно-аппаратные реализации моделирования физического поля в необходимой предметной области, работающие в связке с сервером, предоставляющим функции по обслуживанию модельных экспериментов.
- Эксперт предметной области
- Разработчик алгоритмов моделирования в предметной области на основе соответствующих знаний. Не умеет программировать, не знает как реализуется моделирование, имеет поверхностное представление о сервисах и о том, что алгоритм должен быть параллельным. Работая в связке с программистом предметной области реализует проблемно-ориентированное решение, которое, используя интерфейс локального или удаленного экземпляра предметно-независимой подсистемы, фактически выполняет моделирование.
- Программист предметной области
- Работая в связке с экспертом реализует предметно-ориентированное высокопроизводительное решение, для выполнения модельных экспериментов в предметной области с использованием предметно-независимых сервисов, которые предоставляются нашей системой.
Основной сценарий успешного использования
Полная информация: Use-Case Model
Нефункциональные требования
Глоссарий
Упорядочить следующее
Основная задача, которая решается в работе, заключается в построении программной системы, обслуживающей высокопроизводительное моделирование различных физических полей в одной среде. То есть вся система моделирования разбивается на две подсистемы:
- Предметно-независимая подсистема. Обеспечивает сервисные функции, как то: геометрическое моделирование среды, в которой моделируется поле, банки данных, пользовательский интерфейс, визуализация, распределение вычислительного времени.
- Предметно-ориентированная подсистема. Выполняет собственно моделирование с использованием ресурсов, предоставленных предметно-независимой подсистемой. В систему входят предметно-ориентированные компоненты, которые разрабатываются с участием специалиста предметной области, задающего параллельный алгоритм, реализуемый с использованием средств поддержки разработчика моделирующих подсистем.
Устанавливается строгое требование к независимости реализации предметно-независимой подсистемы от специфики решаемой модельной задачи. Предметно-независимая подсистема должна реализовываться для обеспечения сервисных функций, обеспечивающих моделирование любого физического поля на любых масштабах. Специфика и алгоритм расчета конкретного поля, такие как возможность лучевого приближения, затухание, поляризация и. т. п., должны задаваться исключительно соответствующим компонентом предметно-ориентированной подсистемы.
Важно выделить, что реализация взаимодействия между подсистемами на верхнем уровне должна поддерживать размещение экземпляров подсистем как на одной машине, так и на удаленных машинах. описать в отдельном разделе.
С точки зрения пользователя задача системы состоит в том, чтобы на основе данных о среде, в которой генерируется моделируемое поле, ему была возвращена картина распределения этого поля в 2D или 3D формате.
Данные, вводимые пользователем, включают:
- Геометрическую модель среды распределения поля. Под геометрической моделью понимается двух или трехмерное описание компонентов модели среды распределения поля: их положение, размеры и. т. п.
- Физическую модель. Пользователь задает параметры каждого компонента геометрической модели, задавая их материалы и вещества. Физические параметры материала (коэффициенты поглощения, диэлектрические проницаемости, и. т. п.) выбираются из базы данных, система управления которой, как будет указано ниже, входит в предметно-независимую подсистему, а наполнение осуществляется для конкретной предметной задачи. К физическим параметрам относятся и те, которые задают прохождение волны в части среды, не определяемой компонентами геометрической модели (например, давление, влажность, температура воздуха).
- Количество и положение плоскостей вывода результатов моделирования. Под плоскостями вывода результатов понимаются плоскости, секущие геометрическую модель среды распределения поля. На этих плоскостях в процессе моделирования будут в различных точках "накапливаться"получаемые параметры моделируемого поля.
Данные, получаемые пользователем в результате выполнения программы, включают:
- Распределение характеристик поля по плоскостям вывода результатов. Значения исследуемых характеристик поля в контрольных точках, являющихся элементами матриц распределения по плоскостям вывода результатов - по одной матрице на плоскость.
- Визуализация распределения поля как функция от значений на плоскостях. Визуальное отображение значений на одной плоскости - в виде линий уровня. Для трехмерного отображения предполагается расположение плоскостей в виде сетки и построение плоскостей равных характеристик поля. Результат визуализации может быть наложен на графическое представление среды распределения поля (следующий пункт).
- Визуализация геометрической модели среды распределения поля. Двух или трехмерное отображение среды, доступное до проведения процедуры моделирования. После завершения моделирования используется как графическая подложка, на которую накладывается картина распределения поля.
Устанавливается требование к поддержке многопользовательской работы в системе над одним или множеством модельных проектов.
Предметно-независимая подсистема
Сервисные функции предметно-независимой подсистемы включают в себя:
- Централизованное хранение адресов компонентов системы и управление ими.
- Распределение нагрузки между вычислителями, выполняющими компоненты моделирования.
- Реализация политики безопасности и поддержки ролей пользователей системы.
- Реализация геометрической модели среды распространения моделируемого поля и централизованного доступа к ней.
- Реализация системы управления банками данных, необходимых при выполнении моделирования.
- Реализация пользовательского интерфейса системы.
- Реализация межсистемного взаимодействия по протоколам HLA.
На основе указанных функциональных требований к предметно-независимой подсистеме в целом заданы следующие структурные компоненты предметно-независимой подсистемы на верхнем уровне системной иерархии:
- Подсистема управления. Реализует централизованное хранение адресов узлов распределенной системы моделирования и предоставление авторизованного доступа к ним по запросу. По состоянию на 02.03.2015 подсистема структурно объединена с подсистемой безопасности и подсистемой балансировки нагрузки. Развитие предполагает разделение этих подсистем на отдельные компоненты на верхнем уровне системной иерархии архитектуры предметно-независимой подсистемы.
- Подсистема безопасности. Реализует политику безопасности в системе моделирования в целом, включая реализацию (серверная часть) протоколов аутентификации и авторизации подсистем и пользователей. пока объединена с подсистемой управления и подсистемой балансировки нагрузки
- Подсистема балансировки нагрузки. Реализует распределение нагрузки между вычислительными узлами, реализующими модельные эксперименты и структурно входящими в предметно-ориентированные подсистемы. Распределение нагрузки реализуется за счет использования двух списков: событий, описывающих параметры элементарных компонентов моделирования в соответствии с заданным в предметной области разделением моделируемого объекта в пространстве и во времени [4], а также адресов вычислительных узлов, собственно выполняющих компоненты моделирования. Пока система объединена с подсистемой управления и подсистемой безопасности нагрузки.
- Подсистема геометрического моделирования. Реализует средства хранения и представления сред распространения моделируемых физических полей, предоставляет централизованный доступ к геометрической модели. В текущей реализации подготавливает также визуальное представление геометрической модели до расчета распределения поля. Данную операцию в дальнейшем предпологается выполнять на стороне пользователя.
- Банк данных. Реализует хранение постоянных справочных данных, необходимых при моделировании: коэффициенты поглощения, затухания, номинальныые параметры источников поля, диэлектрические и магнитные проницаимости и. т. п.Информационное наполнение банка определяется в предметной области. Реализация СУБД должна быть предметно-независимой и удовлетворять требованиям ГОСТ. Каждой предметной области соответствует собственный экземпляр СУБД банка.
- Подсистема пользовательского интерфейса. Реализует взаимодействие с пользователем, включая визуализацию результатов моделирования по матрицам распределения поля (см. рис. 2) и геометрической модели среды по ее математическому описанию (последнее - вопрос развития, поскольку визуализация геометрической модели сегодня реализуется подсистемой геометрического моделирования).
- Подсистема межсистемного взаимодействия. Реализует взаимодействие с внешними системами по протоколу HLA [2, 3].
Подсистемы, реализующие взаимодействие с пользователем и внешними системами должны отображать все внешние значения, дружественные к пользователю и заданные в соответствии с протоколами межсистемного взаимодействия, на единые внутрисистемные единицы.