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

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
Строка 1: Строка 1:
{{NavBar|{{computation system hierarchy}}}}
{{NavBar|{{Системная иерархия:Вычислительная подсистема}}}}


Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу.
Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу.
Строка 7: Строка 7:
В этом контексте ''подсистемой предметной области D'' будем называть реализацию подсистемы для предметной области ''D'', где ''D'' - имя предметной области, например: ''подсистема предметной области "Архитектурная акустика"''.
В этом контексте ''подсистемой предметной области D'' будем называть реализацию подсистемы для предметной области ''D'', где ''D'' - имя предметной области, например: ''подсистема предметной области "Архитектурная акустика"''.


С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] вызовом метода [[IControlSystemDomainSide_ConnectToControlSystem|IControlSystemDomainSide::ConnectToControlSystem]] (для распределенной реализации), или имя разделяемой библиотеки (для реализации в едином адресном пространстве).
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] вызовом метода [[IControlSystemDomainSide::ConnectToControlSystem]] (для распределенной реализации), или имя разделяемой библиотеки (для реализации в едином адресном пространстве).


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


Точкой входа в библиотеку является статическая функция с C связыванием [[GetDomainSystem]], инициализирующая узел и возвращающая его программную реализацию в виде интерфейса [IDomainSystem]].
Точкой входа в библиотеку является статическая функция с C связыванием [[GetDomainSystem]], инициализирующая узел и возвращающая его программную реализацию в виде интерфейса [[IDomainSystem]].


====Набор интерфейсных компонентов и интерфейсов====
====Набор интерфейсных компонентов и интерфейсов====


{{control_domain_interaction_class_list}}
{{control_domain_interaction_class_list}}
{{relation_diagram|diagram=Подсистемы вычислительной подсистемы и ее связь с [[подсистема управления|подсистемой управления]].|graph=G|content=
{{relation_diagram addref|class="Подсистема управления"|ref=[[Подсистема управления]]}}
{{relation_diagram addref|class=IDomainSystem|ref=[[IDomainSystem]]}}
{{relation_diagram addref|class=INode|ref=[[INode]]}}
{{relation_diagram addref|class=ILoadBalancer|ref=[[ILoadBalancer]]}}
{{relation_diagram add|composition|"Подсистема управления"|"Балансировщик нагрузки"}}
{{relation_diagram add|implementation|"Балансировщик нагрузки"|ILoadBalancer}}
{{relation_diagram add|aggregation|"Балансировщик нагрузки"|"Исполнитель логического процесса"}}
{{relation_diagram add|aggregation|"Подсистема управления"|"Вычислительная подсистема"}}
{{relation_diagram add|composition|"Вычислительная подсистема"|"Предметная область X"}}
{{relation_diagram add|composition|"Предметная область X"|Кластер}}
{{relation_diagram add|implementation|Кластер|IDomainSystem}}
{{relation_diagram add|composition|Кластер|"Исполнитель логического процесса"}}
{{relation_diagram add|implementation|"Исполнитель логического процесса"|INode}}
}}

Версия 14:58, 11 января 2016

Компоненты на верхнем уровне \ Вычислительная подсистема

Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу.

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

В этом контексте подсистемой предметной области D будем называть реализацию подсистемы для предметной области D, где D - имя предметной области, например: подсистема предметной области "Архитектурная акустика".

С другой стороны, экземпляром N предметной области D будем называть реализацию подсистемы с именем N, под которым этот экземпляр зарегистрирован в подсистеме управления вызовом метода IControlSystemDomainSide::ConnectToControlSystem (для распределенной реализации), или имя разделяемой библиотеки (для реализации в едином адресном пространстве).

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

Интерфейс узла

Точка входа

Точкой входа в библиотеку является статическая функция с 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 Программный интерфейс, реализуемый узлом подсистемы предметной области и предоставляющий подсистеме управления методы для управления вычислительной нагрузкой, которая подается на узел. Физически может быть ассоциирован с вычислительным кластером (для реализации с локальным балансировщиком) либо с потоком на логическом ядре центрального процессора.