Вычислительная подсистема: различия между версиями
Строка 8: | Строка 8: | ||
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[поставщик подсистемы предметной области|поставщиком подсистемы предметной области]]. Экземпляр подсистемы предметной области реализуется в виде внутрипроцессного или TCP сервера с интерфейсом [[IDomainSystem]], принимающего запросы от подсистемы управления на запуск/остановку/завершение моделирования с заданными входными параметрами, а также на получение результатов моделирования и информации о статусе. Адрес сервера (путь к разделяемой библиотеке или адрес плюс порт) задаются в подсистеме управления при регистрации подсистемы предметной области. | С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[поставщик подсистемы предметной области|поставщиком подсистемы предметной области]]. Экземпляр подсистемы предметной области реализуется в виде внутрипроцессного или TCP сервера с интерфейсом [[IDomainSystem]], принимающего запросы от подсистемы управления на запуск/остановку/завершение моделирования с заданными входными параметрами, а также на получение результатов моделирования и информации о статусе. Адрес сервера (путь к разделяемой библиотеке или адрес плюс порт) задаются в подсистеме управления при регистрации подсистемы предметной области. | ||
[[File:DIS-DS-Start-Sequence.svg|500px|thumb|right|Протокол взаимодействия подсистемы управления (ПУ), предметно-независимой реализации балансировщика нагрузки и экземпляра подсистемы предметной области (ППО) при запуске моделирования.]] | |||
[[File:DIS-DS-Query-Sequence.svg|500px|thumb|right|Протокол опроса состояния процесса моделирования, выполняемого асинхронно экземпляром подсистемы предметной области (ППО) и его узлами.]] | |||
[[File:DIS-DS-Close-Sequence.svg|500px|thumb|right|Протокол закрытия составного процесса моделирования.]] | |||
Реализация [[IDomainSystem]] включает в себя реализацию узла с интерфейсом [[INode]], выполняющего определенный в предметной области компонент параллельного выполнения, который выделен для распределения средствами глобального [[балансировщик нагрузки|балансировщика нагрузки]]. Структурно узел [[INode]] также реализуется как компонент, работающий в адресном пространстве подсистемы предметной области, либо как выделенный TCP сервер. При запуске моделирования с помощью метода [[IDomainSystem::StartSimulation]] экземпляр подсистемы предметной области может зарегистрировать узлы в выделенном для этого экземпляра глобальном балансировщике нагрузки. | Реализация [[IDomainSystem]] включает в себя реализацию узла с интерфейсом [[INode]], выполняющего определенный в предметной области компонент параллельного выполнения, который выделен для распределения средствами глобального [[балансировщик нагрузки|балансировщика нагрузки]]. Структурно узел [[INode]] также реализуется как компонент, работающий в адресном пространстве подсистемы предметной области, либо как выделенный TCP сервер. При запуске моделирования с помощью метода [[IDomainSystem::StartSimulation]] экземпляр подсистемы предметной области может зарегистрировать узлы в выделенном для этого экземпляра глобальном балансировщике нагрузки. |
Версия 17:02, 25 октября 2017
Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу.
Подсистема предметной области - программно-аппаратно решение, которое реализует моделирование физического поля на собственных вычислительных мощностях, с использованием собственной программной реализации, заданной для конкретной предметной области, но с использованием правил и инструментов, которые предоставляются подсистемой управления.
В этом контексте подсистемой предметной области D будем называть реализацию подсистемы для предметной области D, где D - имя предметной области, например: подсистема предметной области "Архитектурная акустика".
С другой стороны, экземпляром N предметной области D будем называть реализацию подсистемы с именем N, под которым этот экземпляр зарегистрирован в подсистеме управления - поставщиком подсистемы предметной области. Экземпляр подсистемы предметной области реализуется в виде внутрипроцессного или TCP сервера с интерфейсом IDomainSystem, принимающего запросы от подсистемы управления на запуск/остановку/завершение моделирования с заданными входными параметрами, а также на получение результатов моделирования и информации о статусе. Адрес сервера (путь к разделяемой библиотеке или адрес плюс порт) задаются в подсистеме управления при регистрации подсистемы предметной области.
Реализация IDomainSystem включает в себя реализацию узла с интерфейсом INode, выполняющего определенный в предметной области компонент параллельного выполнения, который выделен для распределения средствами глобального балансировщика нагрузки. Структурно узел INode также реализуется как компонент, работающий в адресном пространстве подсистемы предметной области, либо как выделенный TCP сервер. При запуске моделирования с помощью метода IDomainSystem::StartSimulation экземпляр подсистемы предметной области может зарегистрировать узлы в выделенном для этого экземпляра глобальном балансировщике нагрузки.

В зависимости от такой конфигурации, определяются два базовых интерфейса между подсистемами управления и предметной области.
Интерфейс узла, реализованного как внутрипроцессный сервер
Точка входа
Точкой входа в библиотеку является статическая функция с C связыванием GetDomainSystem, инициализирующая узел и возвращающая его программную реализацию в виде интерфейса IDomainSystem.
Набор интерфейсных компонентов и интерфейсов
Интерфейсы, реализуемые подсистемой управления | |
---|---|
ILoadBalancer | Программный интерфейс, предоставляемый подсистемой управления для подсистемы предметной области. Предоставляет методы для регистрации задачи, которая должна быть выполнена как элемент параллельных вычислений, а также для регистрации свободного узла INode. |
IControlSystem | Базовый интерфейс подсистемы управления. |
IControlSystemDomainSide | Интерфейс, предоставляемый подсистеме предметной области, для установки соединения с подсистемой управления, а также для получения доступа к ее балансировщикам нагрузки. |
IGeometryModel | Интерфейс геометрической модели среды моделируемого физического поля. |
IObject | Базовый интерфейс для всех элементов геометрической модели. |
IPlainObject | Секущая плоскость вывода результатов моделирования. |
ISourceObject | Интерфейс объекта-источника моделируемого поля. |
IPolyObject | Интерфейс объекта-полигонального элемента геометрической модели. |
IObjectCollection | Программный интерфейс коллекции объектов, составляющих геометрическую модель. |
IPlainCollection | Программный интерфейс коллекции секущих плоскостей вывода результатов моделирования. |
ISourceCollection | Программный интерфейс коллекции источников моделируемого физического поля. |
IPolyCollection | Программный интерфейс коллекции полигональных элементов геометрической модели. |
const_object_iterator, object_iterator | Компонент, реализующий двунаправленный итератор, для перечисления всех элементов, составляющих геометрическую модель, т.е. принадлежащих соответствующей коллекции IObjectCollection. |
const_plain_iterator, plain_iterator | Компонент, реализующий двунаправленный итератор, для перечисления плоскостей вывода результатов моделирования, т.е. объектов, реализующих интерфейс IPlainObject и принадлежащих коллекции IPlainCollection соответствующей геометрической модели. |
const_source_iterator, source_iterator | Компонент, реализующий двунаправленный итератор, для перечисления источников моделируемого поля, т.е. объектов, реализующих интерфейс ISourceObject и принадлежащих коллекции ISourceCollection соответствующей геометрической модели. |
const_poly_iterator, poly_iterator | Компонент, реализующий двунаправленный итератор, для перечисления полигональных элементов геометрической модели, т.е. объектов, реализующих интерфейс IPolyObject и принадлежащих коллекции IPolyCollection модели. |
POINT3DEXT | Трехкомпонентный вектор-столбец для описания координат точки в пространстве или радиус-вектора. |
SIZE3DEXT | Трехкомпонентный вектор-столбец для описания трехмерного размера в виде разницы двух координат по соответствующим осям x, y и z. |
FACE3DEXT | Класс полигональной поверхности, композиция которых составляет элемент IPolyObject. |
Интерфейсы, реализуемые подсистемой предметной области. | |
IDomainSystem | Основной программный интерфейс экземпляра подсистемы предметной области. |
INode | Программный интерфейс, реализуемый узлом подсистемы предметной области и предоставляющий подсистеме управления методы для управления вычислительной нагрузкой, которая подается на узел. Физически может быть ассоциирован с вычислительным кластером (для реализации с локальным балансировщиком) либо с потоком на логическом ядре центрального процессора. |
