Вычислительная подсистема: различия между версиями
Строка 9: | Строка 9: | ||
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[Заглавная страница#Целевые пользователи|поставщиком предметной области]] для распределенной реализации, или которым является имя разделяемой библиотеки (для реализации в едином адресном пространстве). | С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[Заглавная страница#Целевые пользователи|поставщиком предметной области]] для распределенной реализации, или которым является имя разделяемой библиотеки (для реализации в едином адресном пространстве). | ||
Подсистема предметной области - совокупность непустого множества вычислительных узлов. Под узлом понимается один компьютер, возможно со множеством параллельных центральных и графических процессоров (исполнителей логических процессов). Узел имеет прямую связь с подсистемой управления | Подсистема предметной области - совокупность непустого множества вычислительных узлов. Под узлом понимается один компьютер, возможно со множеством параллельных центральных и графических процессоров (исполнителей логических процессов). Узел имеет прямую связь с подсистемой управления. | ||
===Интерфейс узла=== | Программно узел реализуется: | ||
; В виде внутрипроцессного сервера : То есть в виде разделяемой библиотеки, которая загружается в адресное пространство [[подсистема управления|подсистемы управления]]. | |||
; В виде удаленного сервера : То есть удаленной (по отношению к [[подсистема управления|подсистеме управления]]) стороны канала, связанного с TCP/IP сокетом. Кроме этого, над таким каналом задаются обработчики TCP/IP запросов по умолчанию для некоторых языков, которые делегируют вызовы реализации подсистемы предметной области, предоставляемой [[Заглавная страница#Целевые пользователи|поставщиком подсистемы предметной области]]. | |||
[[File:top-modules-inprocess.jpg|500px|thumb|right|Модуль управляющей подсистемы, связанный с внутрипроцессной реализацией подсистемы предметной области.]] | |||
[[File:top-modules-distrib.jpg|500px|thumb|right|Модуль управляющей подсистемы, связанный с реализацией подсистемы предметной области в виде удаленного сервера.]] | |||
[[File:top-modules-wrapper.jpg|500px|thumb|right|Модуль управляющей подсистемы и удаленный сервер подсистемы предметной области, реализованной в виде враппера над плагином, реализующим моделирование в предметной области.]] | |||
[[File:top-modules-wrapper-cpp.jpg|500px|thumb|right|Модуль управляющей подсистемы и удаленный сервер подсистемы предметной области в виде заглушки, делегирующей запросы [[программный интерфейс|программным интерфейсам]] разделяемой библиотеки подсистемы предметной области.]] | |||
В зависимости от такой конфигурации, определяются два базовых интерфейса между подсистемами управления и предметной области. | |||
===Интерфейс узла, реализованного как внутрипроцессный сервер === | |||
====Точка входа==== | ====Точка входа==== |
Версия 14:44, 27 января 2016
Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу.
Подсистема предметной области - программно-аппаратно решение, которое реализует моделирование физического поля на собственных вычислительных мощностях, с использованием собственной программной реализации, заданной для конкретной предметной области, но с использованием правил и инструментов, которые предоставляются подсистемой управления.
В этом контексте подсистемой предметной области D будем называть реализацию подсистемы для предметной области D, где D - имя предметной области, например: подсистема предметной области "Архитектурная акустика".
С другой стороны, экземпляром N предметной области D будем называть реализацию подсистемы с именем N, под которым этот экземпляр зарегистрирован в подсистеме управления - поставщиком предметной области для распределенной реализации, или которым является имя разделяемой библиотеки (для реализации в едином адресном пространстве).
Подсистема предметной области - совокупность непустого множества вычислительных узлов. Под узлом понимается один компьютер, возможно со множеством параллельных центральных и графических процессоров (исполнителей логических процессов). Узел имеет прямую связь с подсистемой управления.
Программно узел реализуется:
- В виде внутрипроцессного сервера
- То есть в виде разделяемой библиотеки, которая загружается в адресное пространство подсистемы управления.
- В виде удаленного сервера
- То есть удаленной (по отношению к подсистеме управления) стороны канала, связанного с TCP/IP сокетом. Кроме этого, над таким каналом задаются обработчики TCP/IP запросов по умолчанию для некоторых языков, которые делегируют вызовы реализации подсистемы предметной области, предоставляемой поставщиком подсистемы предметной области.

В зависимости от такой конфигурации, определяются два базовых интерфейса между подсистемами управления и предметной области.
Интерфейс узла, реализованного как внутрипроцессный сервер
Точка входа
Точкой входа в библиотеку является статическая функция с 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 | Программный интерфейс, реализуемый узлом подсистемы предметной области и предоставляющий подсистеме управления методы для управления вычислительной нагрузкой, которая подается на узел. Физически может быть ассоциирован с вычислительным кластером (для реализации с локальным балансировщиком) либо с потоком на логическом ядре центрального процессора. |
Файл mwstore://local-backend/local-public/diagrams/archive/20250511100116!Diagrams_2440dfbfcb29776e73bfb7e3f9e48846.jpg уже существует.