Вычислительная подсистема: различия между версиями
Строка 1: | Строка 1: | ||
{{NavBar|{{ | {{NavBar|{{Системная иерархия:Вычислительная подсистема}}}} | ||
Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу. | Вычислительная подсистема - логическое объединение различных подсистем предметных областей в единую структурную единицу. | ||
Строка 7: | Строка 7: | ||
В этом контексте ''подсистемой предметной области D'' будем называть реализацию подсистемы для предметной области ''D'', где ''D'' - имя предметной области, например: ''подсистема предметной области "Архитектурная акустика"''. | В этом контексте ''подсистемой предметной области D'' будем называть реализацию подсистемы для предметной области ''D'', где ''D'' - имя предметной области, например: ''подсистема предметной области "Архитектурная акустика"''. | ||
С другой стороны, ''экземпляром N предметной области D'' будем называть реализацию подсистемы с именем ''N'', под которым этот экземпляр зарегистрирован в [[подсистема управления|подсистеме управления]] вызовом метода [[ | С другой стороны, ''экземпляром 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 | Программный интерфейс, реализуемый узлом подсистемы предметной области и предоставляющий подсистеме управления методы для управления вычислительной нагрузкой, которая подается на узел. Физически может быть ассоциирован с вычислительным кластером (для реализации с локальным балансировщиком) либо с потоком на логическом ядре центрального процессора. |
