Вычислительная подсистема: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 9: Строка 9:
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[Заглавная страница#Целевые пользователи|поставщиком предметной области]] для распределенной реализации, или которым является имя разделяемой библиотеки (для реализации в едином адресном пространстве).
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] - [[Заглавная страница#Целевые пользователи|поставщиком предметной области]] для распределенной реализации, или которым является имя разделяемой библиотеки (для реализации в едином адресном пространстве).


Подсистема предметной области - совокупность непустого множества вычислительных узлов. Под узлом понимается один компьютер, возможно со множеством параллельных центральных и графических процессоров (исполнителей логических процессов). Узел имеет прямую связь с подсистемой управления. Программно узел реализуется в виде внутрипроцессного сервера - разделяемой библиотеки, которая загружается в адресное пространство части подсистемы управления, работающей как фоновый процесс (служба Windows, демон Linux) на узле подсистемы предметной области. Поскольку подсистема управления может задавать ограничения на память и ширину каналов связи, выделяемых для одной подсистемы предметной области, для межпотоковой балансировки нагрузки и синхронизации предполагается использование собственных локальных средств узла, которые далее будем называть локальным балансировщиком нагрузки.
Подсистема предметной области - совокупность непустого множества вычислительных узлов. Под узлом понимается один компьютер, возможно со множеством параллельных центральных и графических процессоров (исполнителей логических процессов). Узел имеет прямую связь с подсистемой управления.  


===Интерфейс узла===
Программно узел реализуется:
; В виде внутрипроцессного сервера : То есть в виде разделяемой библиотеки, которая загружается в адресное пространство [[подсистема управления|подсистемы управления]].
; В виде удаленного сервера : То есть удаленной (по отношению к [[подсистема управления|подсистеме управления]]) стороны канала, связанного с 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 уже существует.