Заглавная страница: различия между версиями
Строка 49: | Строка 49: | ||
=== Целевые пользователи === | === Целевые пользователи === | ||
; | ;Моделирующий пользователь | ||
:Программа предполагает наличие пользователей, в интересах которых на основе имеющегося описания среды | :Программа предполагает наличие пользователей, в интересах которых на основе имеющегося описания среды распространения ''интересующего его'' поля ''быстро'' получить ''точную'' картину распределения характеристик этого поля на плоскости или в пространстве, возможно изменяющихся во времени. Пользователь не располагает знаниями в области вычислений или компьютерного моделирования и использует либо существующие на сервере, либо заданные самим пользователем программно-аппаратные реализации моделирования физического поля в необходимой предметной области, работающие в связке с сервером, предоставляющим функции по обслуживанию модельных экспериментов. | ||
;Эксперт предметной области | ;Эксперт предметной области | ||
:Разработчик алгоритмов моделирования в предметной области на основе соответствующих знаний. Не умеет программировать, не знает как реализуется моделирование, имеет поверхностное представление о сервисах и о том, что алгоритм должен быть параллельным. Работая в связке с | :Разработчик алгоритмов моделирования в предметной области на основе соответствующих знаний. Не умеет программировать, не знает как реализуется моделирование, имеет поверхностное представление о сервисах и о том, что алгоритм должен быть параллельным. Работая в связке с <u>программистом предметной области</u> реализует проблемно-ориентированное решение, которое, используя интерфейс локального или удаленного экземпляра предметно-независимой подсистемы, фактически выполняет моделирование. | ||
;Программист предметной области | ;Программист предметной области | ||
:Работая в связке с | :Работая в связке с <u>экспертом предметной области</u> реализует предметно-ориентированное высокопроизводительное решение, для выполнения модельных экспериментов в предметной области с использованием предметно-независимых сервисов, которые предоставляются нашей системой. | ||
;Поставщик предметно-независимых сервисов | |||
:Лицо или организация, на стороне которой развернута предметно-независимая подсистема CAMaaS. Является поставщиком сервисов по, во-первых, обслуживанию процесса моделирования в предметной области с использованием внешних вычислительных мощностей и программной реализации моделирования, а во-вторых, по предоставлению <u>Моделирующему пользователю</u> интерфейса, с помощью которого он задает входные параметры и получает результаты. | |||
;Поставщик подсистемы предметной области | |||
:Лицо или организация, на стороне которой развернута предметно-ориентированная подсистема, реализующая алгоритм моделирования в конкретной предметной области и реализуемая с помощью интерфейса, предоставленного <u>поставщиком предметно-независимых сервисов</u>. Моделирование выполняется на вычислительных ресурсах <u>поставщика подсистемы предметной области</u> под управлением <u>поставщика предметно-независимых сервисов</u>. | |||
==== Замечания эксперта предметной области ==== | ==== Замечания эксперта предметной области ==== |
Версия 18:32, 1 июня 2015
На данном портале размещены и будут размещаться документация и исходные коды, реализующие высокопроизводительную систему моделирования физических полей. Предварительное название системы - 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].
Место разрабатываемого продукта
Необходимость разработки продукта вытекает из потребностей специалистов предметных областей, связанных с моделированием различных физических полей, в универсальном решении для проведения модельных экспериментов в различных предметных областях, со сколь угодно сложной задачей и степенью аппроксимации моделируемого объекта, различными требованиями ко времени вычислений с одной стороны, и к адекватности результатов моделирования с другой.
Поэтому законченный продукт должен удовлетворять трем принципиальным требованиям:
- Адаптируемость
- Возможность включения в систему дополнительных моделирующих подсистем для расширения области применимости системы в целом, т.е. для решения пользовательских задач в его предметной области - при условии предоставления последним соответствующих программных и аппаратных ресурсов.
- Масштабируемость.
- Возможность выполнения как собственно моделирования, так и сервисных функций большим (изменяемым) количеством параллельных вычислителей.
- Многопользовательское моделирование
- Поддержка многопользовательской работы над одним или множеством модельных проектов, в одной или разных предметных областях, с использованием одной копии разрабатываемого продукта.
Альтернативы и конкурирующие решения
TODO: Сюда нужно вставить подробный анализ существующих систем моделирования: ANSYS, Odeod Room Acoustics Software и т.д.
Целевые пользователи
- Моделирующий пользователь
- Программа предполагает наличие пользователей, в интересах которых на основе имеющегося описания среды распространения интересующего его поля быстро получить точную картину распределения характеристик этого поля на плоскости или в пространстве, возможно изменяющихся во времени. Пользователь не располагает знаниями в области вычислений или компьютерного моделирования и использует либо существующие на сервере, либо заданные самим пользователем программно-аппаратные реализации моделирования физического поля в необходимой предметной области, работающие в связке с сервером, предоставляющим функции по обслуживанию модельных экспериментов.
- Эксперт предметной области
- Разработчик алгоритмов моделирования в предметной области на основе соответствующих знаний. Не умеет программировать, не знает как реализуется моделирование, имеет поверхностное представление о сервисах и о том, что алгоритм должен быть параллельным. Работая в связке с программистом предметной области реализует проблемно-ориентированное решение, которое, используя интерфейс локального или удаленного экземпляра предметно-независимой подсистемы, фактически выполняет моделирование.
- Программист предметной области
- Работая в связке с экспертом предметной области реализует предметно-ориентированное высокопроизводительное решение, для выполнения модельных экспериментов в предметной области с использованием предметно-независимых сервисов, которые предоставляются нашей системой.
- Поставщик предметно-независимых сервисов
- Лицо или организация, на стороне которой развернута предметно-независимая подсистема CAMaaS. Является поставщиком сервисов по, во-первых, обслуживанию процесса моделирования в предметной области с использованием внешних вычислительных мощностей и программной реализации моделирования, а во-вторых, по предоставлению Моделирующему пользователю интерфейса, с помощью которого он задает входные параметры и получает результаты.
- Поставщик подсистемы предметной области
- Лицо или организация, на стороне которой развернута предметно-ориентированная подсистема, реализующая алгоритм моделирования в конкретной предметной области и реализуемая с помощью интерфейса, предоставленного поставщиком предметно-независимых сервисов. Моделирование выполняется на вычислительных ресурсах поставщика подсистемы предметной области под управлением поставщика предметно-независимых сервисов.
Замечания эксперта предметной области
Замечания программиста предметной области
Замечания пользователя
Ключевые задачи и проблемы заинтересованных сторон
Высокоуровневая задача | Приоритет | Проблемы (в т.ч. возможные) | Существующие на рынке решения |
---|---|---|---|
Проведение моделирования с гибкими показателями по адекватности результатов моделирования, его времени и стоимости - в зависимости от имеющихся вычислительных ресурсов | 10 | Заранее (вне зависимости от предметной области) неизвестно распараллеливаема ли пользовательская задача, эффективными ли будут методы управления параллельным моделированием в той модели вычислений, которая реализуется пользователем.
Неизвестное заранее ограничение сверху на количество параллельных вычислителей, после которого включение дополнительных мощностей дает отрицательный результат. Необходимость осведомленности эксперта предметной области о требовании к параллелизму его алгоритмов и, как следствие, необходимость его хотя бы поверхностного обучения и вероятность неэффективности алгоритмов. |
Сегодня не существует высокопроизводительных систем моделирования общего назначения, обеспечивающих масштабируемость на разнородные параллельные вычислители.[4]. Однако существуют концептуальные подходы - параллельное дискретно-событийное моделирование, HLA, DIS. Существуют профессиональные решения, использующие указанные подходы (например: [6]). Однако высокопроизводительные программно-аппаратные решения не являются переносимыми и реализованы с жесткой привязкой к конкретным модельным задачам, аппаратной архитектуре и даже к компиляторам. Поэтому они чаще всего создаются для конкретного использования в конкретной организации и не используются где-либо еще. Подробнее см в [7]. |
Проведение моделирования в требуемой пользователем предметной области | 9 | Разделение системы моделирования на предметно-независимую и предметно-ориентированную подсистему осуществляется на верхнем уровне системной иерархии. С другой стороны, реализация моделирующих подсистем, образующих предметно-ориентированную подсистему, будет осуществляться пользователем и после выхода законченного продукта. Соответственно и требования предметников к сервисам также будут выставляться и меняться на всем жизненном цикле. Таким образом, возможны частые изменения архитектуры системы в целом.
Имеется требование к участию экспертов предметной области в разработке моделирующих подсистем, также уже после выхода финальной версии продукта. |
ANSYS реализуется как ядро и набор плагинов, задающих моделирование в различных предметных областях. Насколько мне известно, эти плагины всегда разрабатываются самой ANSYS, но имеются сомнения. |
... | ... | ... | ... |
Действующие лица и их роли
Здесь перечислены основные участники протоколов работы с системой и перечислены имена сценариев использования, в которых данные роли принимают участие.
- Моделирующий пользователь
- Администратор банка данных
- Оператор подсистемы безопасности
- Системный администратор
Основной сценарий успешного использования
Это основной сценарий успешного выполнения в кратком формате, полное описание приведено на отдельной странице. См. также список сценариев использования.
Пользователь запускает клиент доступа к системе моделирования. Пользователь устанавливает соединение с серверной подсистемой CAMaaS. Пользователь проходит процедуры аутентификации и авторизации. Пользователь задает геометрическую и физическую модель среды распределения поля, загружает ее с локального хранилища или получает эту модель путем обращения к системе. Пользователь задает параметры вывода результатов моделирования, либо загружает их с локального хранилища или путем обращения к системе. На основе физико-геометрической модели и параметров вывода результатов система выполняет моделирование поля. Система отображает результаты моделирования в виде таблиц или визуализировано на основе этих таблиц.
Нефункциональные требования
Глоссарий
Упорядочить следующее
Основная задача, которая решается в работе, заключается в построении программной системы, обслуживающей высокопроизводительное моделирование различных физических полей в одной среде. То есть вся система моделирования разбивается на две подсистемы:
- Предметно-независимая подсистема. Обеспечивает сервисные функции, как то: геометрическое моделирование среды, в которой моделируется поле, банки данных, пользовательский интерфейс, визуализация, распределение вычислительного времени.
- Предметно-ориентированная подсистема. Выполняет собственно моделирование с использованием ресурсов, предоставленных предметно-независимой подсистемой. В систему входят предметно-ориентированные компоненты, которые разрабатываются с участием специалиста предметной области, задающего параллельный алгоритм, реализуемый с использованием средств поддержки разработчика моделирующих подсистем.
Устанавливается строгое требование к независимости реализации предметно-независимой подсистемы от специфики решаемой модельной задачи. Предметно-независимая подсистема должна реализовываться для обеспечения сервисных функций, обеспечивающих моделирование любого физического поля на любых масштабах. Специфика и алгоритм расчета конкретного поля, такие как возможность лучевого приближения, затухание, поляризация и. т. п., должны задаваться исключительно соответствующим компонентом предметно-ориентированной подсистемы.
Важно выделить, что реализация взаимодействия между подсистемами на верхнем уровне должна поддерживать размещение экземпляров подсистем как на одной машине, так и на удаленных машинах. описать в отдельном разделе.
С точки зрения пользователя задача системы состоит в том, чтобы на основе данных о среде, в которой генерируется моделируемое поле, ему была возвращена картина распределения этого поля в 2D или 3D формате.
Данные, вводимые пользователем, включают:
- Геометрическую модель среды распределения поля. Под геометрической моделью понимается двух или трехмерное описание компонентов модели среды распределения поля: их положение, размеры и. т. п.
- Физическую модель. Пользователь задает параметры каждого компонента геометрической модели, задавая их материалы и вещества. Физические параметры материала (коэффициенты поглощения, диэлектрические проницаемости, и. т. п.) выбираются из базы данных, система управления которой, как будет указано ниже, входит в предметно-независимую подсистему, а наполнение осуществляется для конкретной предметной задачи. К физическим параметрам относятся и те, которые задают прохождение волны в части среды, не определяемой компонентами геометрической модели (например, давление, влажность, температура воздуха).
- Количество и положение плоскостей вывода результатов моделирования. Под плоскостями вывода результатов понимаются плоскости, секущие геометрическую модель среды распределения поля. На этих плоскостях в процессе моделирования будут в различных точках "накапливаться"получаемые параметры моделируемого поля.
Данные, получаемые пользователем в результате выполнения программы, включают:
- Распределение характеристик поля по плоскостям вывода результатов. Значения исследуемых характеристик поля в контрольных точках, являющихся элементами матриц распределения по плоскостям вывода результатов - по одной матрице на плоскость.
- Визуализация распределения поля как функция от значений на плоскостях. Визуальное отображение значений на одной плоскости - в виде линий уровня. Для трехмерного отображения предполагается расположение плоскостей в виде сетки и построение плоскостей равных характеристик поля. Результат визуализации может быть наложен на графическое представление среды распределения поля (следующий пункт).
- Визуализация геометрической модели среды распределения поля. Двух или трехмерное отображение среды, доступное до проведения процедуры моделирования. После завершения моделирования используется как графическая подложка, на которую накладывается картина распределения поля.
Устанавливается требование к поддержке многопользовательской работы в системе над одним или множеством модельных проектов.
Предметно-независимая подсистема
Сервисные функции предметно-независимой подсистемы включают в себя:
- Централизованное хранение адресов компонентов системы и управление ими.
- Распределение нагрузки между вычислителями, выполняющими компоненты моделирования.
- Реализация политики безопасности и поддержки ролей пользователей системы.
- Реализация геометрической модели среды распространения моделируемого поля и централизованного доступа к ней.
- Реализация системы управления банками данных, необходимых при выполнении моделирования.
- Реализация пользовательского интерфейса системы.
- Реализация межсистемного взаимодействия по протоколам HLA.
На основе указанных функциональных требований к предметно-независимой подсистеме в целом заданы следующие структурные компоненты предметно-независимой подсистемы на верхнем уровне системной иерархии:
- Подсистема управления. Реализует централизованное хранение адресов узлов распределенной системы моделирования и предоставление авторизованного доступа к ним по запросу. По состоянию на 02.03.2015 подсистема структурно объединена с подсистемой безопасности и подсистемой балансировки нагрузки. Развитие предполагает разделение этих подсистем на отдельные компоненты на верхнем уровне системной иерархии архитектуры предметно-независимой подсистемы.
- Подсистема безопасности. Реализует политику безопасности в системе моделирования в целом, включая реализацию (серверная часть) протоколов аутентификации и авторизации подсистем и пользователей. пока объединена с подсистемой управления и подсистемой балансировки нагрузки
- Подсистема балансировки нагрузки. Реализует распределение нагрузки между вычислительными узлами, реализующими модельные эксперименты и структурно входящими в предметно-ориентированные подсистемы. Распределение нагрузки реализуется за счет использования двух списков: событий, описывающих параметры элементарных компонентов моделирования в соответствии с заданным в предметной области разделением моделируемого объекта в пространстве и во времени [4], а также адресов вычислительных узлов, собственно выполняющих компоненты моделирования. Пока система объединена с подсистемой управления и подсистемой безопасности нагрузки.
- Подсистема геометрического моделирования. Реализует средства хранения и представления сред распространения моделируемых физических полей, предоставляет централизованный доступ к геометрической модели. В текущей реализации подготавливает также визуальное представление геометрической модели до расчета распределения поля. Данную операцию в дальнейшем предпологается выполнять на стороне пользователя.
- Банк данных. Реализует хранение постоянных справочных данных, необходимых при моделировании: коэффициенты поглощения, затухания, номинальныые параметры источников поля, диэлектрические и магнитные проницаимости и. т. п.Информационное наполнение банка определяется в предметной области. Реализация СУБД должна быть предметно-независимой и удовлетворять требованиям ГОСТ. Каждой предметной области соответствует собственный экземпляр СУБД банка.
- Подсистема пользовательского интерфейса. Реализует взаимодействие с пользователем, включая визуализацию результатов моделирования по матрицам распределения поля (см. рис. 2) и геометрической модели среды по ее математическому описанию (последнее - вопрос развития, поскольку визуализация геометрической модели сегодня реализуется подсистемой геометрического моделирования).
- Подсистема межсистемного взаимодействия. Реализует взаимодействие с внешними системами по протоколу HLA [2, 3].
Подсистемы, реализующие взаимодействие с пользователем и внешними системами должны отображать все внешние значения, дружественные к пользователю и заданные в соответствии с протоколами межсистемного взаимодействия, на единые внутрисистемные единицы.
Примечания и ссылки
- ↑ Верхнеуровневые цели и ограничения, задачи пользователей, аннотация
- ↑ на первых этапах имеются ввиду логические ядра центральных процессоров
- ↑ Нужен более глубокий анализ ANSYS как комплекса
- ↑ Согласно патентному поиску и анализу источников на первом этапе ФЦП. Однако возможно требуется более детальный анализ