Организация распределенного сетевого расчета
На данной странице содержится информация об организации распределенного сетевого расчета в SimInTech на нескольких вычислительных узлах.
Комплексные модели принято декомпозировать на подсистемы согласно физике протекающих в них процессов и рассчитывать каждую из них в отдельном проекте. Пакетная организация SimInTech позволяет объединять проекты в общий пакет проектов и проводить их совместное моделирование. Проекты в пакете обмениваются данными друг с другом через общую базу данных сигналов SDB (англ. Signals Data Base). Если один компьютер не обладает достаточной производительностью для самостоятельного расчета объемной модели, то нагрузку можно распределить на несколько устройств.
База данных SimInTech позволяет организовать обмен данными между проектами в локальной сети без объединения проектов в пакет. Благодаря этому возможно организовать распределенный сетевой расчет комплексной модели на нескольких устройствах. Каждый проект должен иметь свою собственную базу данных, которые могут быть как полностью одинаковыми, так и отличаться. Обмен данными между проектами происходит по общим одноименным сигналам в базах данных.
Обмен данными через сеть в SimInTech при помощи базы данных SDB имеет свои особенности. Один из вычислительных узлов, участвующих в сетевом обмене, должен стать главным, то есть сервером. Сервер может как получать, так и отдавать данные остальным узлам, которые именуются клиентами. Клиенты, в свою очередь, также через базу данных SDB могут обмениваться данными между собой и с сервером. Как правило, в качестве сервера выбирается узел, содержащий главный центральный проект комплексной модели, например, модель объекта управления. Тогда остальные узлы, содержащие, например, модель алгоритмов системы управления или модель блоков управления оборудованием, становятся клиентами.
Настройка общего сетевого доступа
Для удобства дальнейшей настройки сервера и клиентов рекомендуется предоставить общий доступ к папке с проектами, входящими в состав комплексной модели, для всех устройств, на которых будут рассчитываться проекты. В ином случае задавать настройки сетевого расчета придется на каждом вычислительном устройстве отдельно. Директория с проектами может находится на любом из узлов, однако рекомендуется хранить ее на компьютере-сервере.
- В области уведомлений нажмите на иконку "Доступ к Интернету" и выберите
"Свойства" для сети, к которой будут подключены все устройства, участвующие в
расчете (Рисунок 1).

Рис. 1. Свойства локальной сети. - В открывшемся окне "Параметры" выберите сетевой профиль "Частные" (Рисунок 2).

Рис. 2. Окно "Параметры" с выбранным пунктом "Частные". - Откройте "Панель управления" и перейдите в раздел "Сеть и Интернет"
(Рисунок 3).

Рис. 3. Окно "Панель управления" с выделенным разделом "Сеть и Интернет". - В открывшемся окне выберите подраздел "Центр управления сетями и общим
доступом" (Рисунок 4).

Рис. 4. Окно "Сеть и Интернет" с выделенным подразделом "Центр управления сетями и общим доступом". - В левом меню выберите пункт "Изменить дополнительные параметры общего доступа"
(Рисунок 5).

Рис. 5. Окно "Центр управления сетями и общим доступом" с выделенным пунктом "Изменить дополнительные параметры общего доступа". - В меню "Изменение параметров общего доступа для различных сетевых профилей"
раскройте выпадающее меню "Частная" и активируйте следующие пункты (Рисунок 6):
- "Включить сетевое обнаружение"
- "Включить автоматическую настройку на сетевых устройствах"
- "Включить общий доступ к файлам и принтерам"

Рис. 6. Окно "Дополнительные параметры общего доступа" с требуемыми пунктами.
Теперь другие устройства в локальной сети смогут обнаруживать этот компьютер и получать доступ к его общим файлам. Однако сделать это можно будет только с помощью его логина и пароля. Чтобы избежать этого можно либо предоставить доступ к общей папке без ввода пароля всем компьютерам, находящимся в локальной сети, либо создать нового пользователя и предоставить ему доступ. В последнем случае доступ к общей папке будет только у тех устройств, которые зашли под новым пользователем.
- В меню "Изменение параметров общего доступа для различных сетевых профилей" раскройте выпадающий список "Все сети".
- В строке "Общий доступ с парольной защитой" выберите пункт "Отключить общий
доступ с парольной защитой" и нажмите кнопку "Сохранить изменения" (Рисунок 7).

Рис. 7. Окно "Дополнительные параметры общего доступа" с выделенным пунктом "Отключить общий доступ с парольной защитой" и кнопкой "Сохранить".
net user имя_пользователя пароль /add"Имя_пользователя"
должно быть записано на латинице без пробелов. После ввода команды нажать Enter. В случае
успеха появится надпись "Команда выполнена успешно" (Рисунок
8).
net user имя_пользователя /delete.Следующим шагом является настройка общего доступа к папке с проектами.
- Выберите папку с проектами и одинарным нажатием правой кнопки мыши вызвать контекстное
меню. Выбрать пункт "Свойства" (Рисунок 9).

Рис. 9. Открытие свойств общей папки. - В открывшемся окне выберите вкладку "Доступ", затем - "Расширенная
настройка..." (Рисунок 10).

Рис. 10. Окно "Свойства" с выделенной вкладкой "Доступ" и кнопкой "Расширенная настройка...". - В окне "Расширенная настройка общего доступа" активируйте пункт "Открыть
общий доступ к этой папке" и нажмите кнопку "Разрешения" (Рисунок 11).

Рис. 11. Окно "Расширенная настройка общего доступа" с выделенным пунктом "Открыть общий доступ к этой папке" и кнопкой "Разрешения". - В открывшемся окне нажмите кнопку "Добавить" и выберите имя встроенной группы
безопасности. Так как данная группа будет включать в себя всех пользователей,
подключенных к локальной сети, то необходимо ввести "Все". В случае, если
используется англоязычная версия операционной системы, то ввести "Everyone".
Затем нажмите кнопку "ОК" (Рисунок 12).

Рис. 12. Окно "Выбор" с введенным именем группы пользователей "Все" и выделенной кнопкой "ОК" . - В открывшемся окне во вкладке "Разрешения для общего ресурса" выберите
добавленную группу и в области "Разрешения для группы "Все"" активируйте пункт
"Полный доступ" в столбце "Разрешить". Затем дважды нажать кнопку
"ОК" (Рисунок 13).

Рис. 13. Окно "Разрешения для группы" с выделенной группой "Все", пунктом "Полный доступ" и кнопкой "ОК". - Вернувшись в свойства общей папки, во вкладке "Доступ" нажмите кнопку "Общий
доступ". В открывшемся окне раскройте выпадающий список, выберите строку
"Все" и нажмите кнопку "Добавить" (Рисунок 14).

Рис. 14. Окно "Доступ к сети" с выделенным полем для добавления пользователей, в котором выбрана нужная группа пользователей. - После появления группы "Все" в окне общего доступа в столбце "Уровень
разрешений" выберите "Чтение и запись". Затем нажмите кнопку
"Поделиться" (Рисунок 15).

Рис. 15. Окно "Доступ к сети" с выделенной строкой группы пользователей "Все" и кнопкой "Поделиться". - В случае успешного предоставления доступа к папке появится соответствующее окно.
Закройте его путем нажатия кнопки "Готово" (Рисунок 16). Открытое ранее окно свойств общей папки закрыть путем нажатия
кнопки "Закрыть".

Рис. 16. Окно "Доступ к сети" с выделенной кнопкой "Готово".
Теперь любой компьютер, подключенный к одной локальной сети с сервером, может читать, записывать и изменять файлы, которые храняться в общей папке.
- Выбрите папку с проектами и одинарным нажатием правой кнопки мыши вызвать контекстное
меню. Выберите пункт "Предоставить доступ к" и "Отдельные люди..." (Рисунок 17).

Рис. 17. Предоставление общего доступа к папке отдельному пользователю. - В открывшемся окне "Доступ к сети" раскройте выпадающий список, выберите строку
с именем ранее созданного пользователя и нажмите кнопку "Добавить" (Рисунок 18).

Рис. 18. Окно "Доступ к сети" с выделенным полем для добавления пользователей, в котором выбран нужный пользователь. - После появления имени пользователя в окне общего доступа в столбце "Уровень
разрешений" выберите "Чтение и запись". Затем нажмите кнопку
"Поделиться" (Рисунок 19)

Рис. 19. Окно "Доступ к сети" с выделенной строкой пользователя и кнопкой "Поделиться". - В случае успешного предоставления доступа к папке появится окно "Доступ к сети".
Закройте его путем нажатия кнопки "Готово" (Рисунок 20).

Рис. 20. Окно "Доступ к сети" с выделенной кнопкой "Готово".

Данные сетевые настройки можно пропустить. Тогда все настройки сервера и клиентов, а также возможные изменения в проекты придется вносить на каждом из расчетных узлов отдельно.
Изменение места хранения настроек базы данных
По умолчанию настройки базы данных хранятся в файле SDB. Поэтому при сетевом расчете каждому проекту требуется своя база данных сигналов. Однако если хранить настройки совместно с файлом проекта, то это позволит разным проектам подключаться к одной базе данных с разными настройками. При этом база данных может быть одинаковой для всех проектов.
- Откройте любой проект, который будет участвовать в распределенном расчете.
- В окне проекта нажмите кнопку "База данных..." (Рисунок 22).

Рис. 22. Проект с выделенной кнопкой "База данных" - В открывшемся окне редактора базы данных перейдите на вкладку "Настройки". По
умолчанию также будет открыта вкладка "Настройки базы данных" (Рисунок 23).

Рис. 23. Окно "Редактор базы данных сигналов" с выделенной вкладкой "Настройки" и подразделом "Настройки базы данных". - Выберите в пункте "Хранить настройки базы совместно с" - "Файлом
проекта" (Рисунок 24).

Рис. 24. Окно "Редактор базы данных сигналов" с выделенной кнопкой "Хранить настройки базы совместно с".
Данный алгоритм необходимо повторить для каждого проекта, участвующего в распределенном расчете. Теперь настройки сервера и клиентов будут хранится совместно с файлом соответствующего проекта.
Настройка сервера
Перед началом настройки сервера и клиентов необходимо убедиться, что ко всем проектам отдельно подключена база данных. Для распределенного сетевого расчета не нужно проекты собирать в один пакет.
- Откройте проект, который будет рассчитываться на сервере.
- В окне проекта откройте редактор базы данных, перейдите на вкладку "Настройки",
затем - "Настройки сетевого обмена" (Рисунок 25).

Рис. 25. Окно "Редактор базы данных сигналов" с выделенной вкладкой "Настройки" и подразделом "Настройки сетевого обмена".

| Название | Описание |
|---|---|
| Порт приёма данных | Номер порта, через который проекты при распределенном сетевой расчете могут обмениваться данными. При необходимости может быть изменен. Перед началом моделирования рекомендуется проверить, открыт ли данный порт |
| Разрешить приём данных от клиентов | Режим приема данных сервером от клиентов. Активация данного пункта является необходимым условием для реализации сетевого обмена |
| Посылать флаг рестарта клиентам | Режим отправки флага рестарта сервером к клиентам. Требуется активировать при работе с рестартами |
После внесения необходимых изменений требуется сохранить проект и закрыть окно редактора базы данных.
Настройка клиента

| Название | Описание |
|---|---|
| IP-сервер удалённого сервера обмена | IP адрес сервера, к которому подключается клиент |
| Порт удалённого сервера обмена | Номер порта, через который проекты при распределенном сетевой расчете могут обмениваться данными. Номер порта клиентов должен совпадать с номером порта сервера |
| Включить удалённый обмен | Режим обмена данными между сервером и клиентами. Активация данного пункта является необходимым условием для реализации сетевого обмена |
| Синхронизировать модельное время | Режим синхронизации модельного времени клиента с сервером. Активация данного пункта является необходимым условием для реализации сетевого обмена |
| Принимать данные от сервера | Режим приема данных клиентом от сервера. При деактивации данные от сервера не будут передаваться клиенту |
| Передавать данные на сервер | Режим передачи данных клиентом на сервера. При деактивации данные с клиента не будут передаваться на сервер |
При работе с рестартами необходимо выполнить настройку процессов загрузки и сохранения рестартов. Свойство "Выполнять асинхронные запросы данных" активирует режим асинхронного обемена данными - режим, при котором подключение и отключение клиента к серверу происходит в любое время и независимо от текущего состояния остальных проектов.
После выполнения настроек необходимо сохранить проект и закрыть окно редактора базы данных. Аналогичным образом нужно провести настройку остальных клиентов.
Ручной запуск распределенного расчета
При ручном запуске распределенного расчета необходимо сначала на каждом вычислительном устройстве отдельно выполнить инициализацию всех проектов, начиная с сервера, а затем на сервере запустить все проекты на расчет.
- Нажмите кнопку "Инициализация" в окне проекта, выполняющего роль сервера, для инициализации расчета проекта на сервере
- Нажмите кнопку "Инициализация" в окне каждого из проектов, выполняющих роль клиента. В области сообщений каждого проекта при этом не должно возникать ошибок
- Нажмите кнопку "Пуск" для запуска распределенного расчета
После этого начнется распределенный расчет с синхронизацией модельного времени и обменом данными по сигналам базы данных SDB. При нажатии кнопок "Пуск", "Пауза" и "Стоп" с сервера аналогичные команды будут выполнены на всех клиентах.
- Статусе подключения клиентов
- Количестве подключенных к серверу клиентов в данный момент
- Именах и значениях сигналов, которыми обмениваются проекты
Настройка запуска сетевого расчета в автоматизированном режиме
- Утилита "Сервер удаленного расчета" — Proxy.exe
- Утилита "Утилита массового запуска и синхронизации" — remscrcontrol.exe


- Перейти в папку "Автозагрузка": C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- Скопировать в папку "Автозагрузка" ярлык программы "Сервер удаленного расчета" (Рисунок 30)

"Утилита массового запуска и синхронизации" позволяет в автоматизированном режиме отправлять команды для командной строки Windows на исполнение нескольким компьютерам в одной локальной сети. Для запуска распределенного расчета нужно для каждого устройства прописать команду на открытие в SimInTech соответствующего проекта и инициализацию его на расчет.
- Запустить "Утилиту массового запуска и синхронизации" и перейти на вкладку "Настройки".
- Создать шаблоны команд в зависимости от расположения проектов на том устройстве, на
котором они будут запущены. Если проекты будут запущены на разных устройствах, но при
этом расположены в одной директории, то шаблон для них будет одинаковым. Если проект,
который лежит в общей сетевой папке, будет запущен на клиенте, в шаблоне необходимо
прописать путь UNC с указанием имени хоста - имени компьютера, на котором локально
хранится общая папка. Шаблон команды для открытия и инициализации проекта выглядит
следующим образом:
mstarter.exe "директория рассчитываемого проекта\%command%" /start;Пример задания шаблонов команд представлен на рисунке (Рисунок 31).
Рис. 31. Окно "Утилита удалённого запуска задач" с выделенной вкладкой "Настройки" и полем с заданными шаблонами команд. Пример задания шаблонов команд для расчета проектов, хранящихся в одной сетевой папке, представлен на рисунке (Рисунок 32).
Верхняя строка является шаблоном команды для запуска на сервере. Нижняя строка - шаблон для запуска на клиентах, при условии, что все файлы лежат в одной общей сетевой папке.
Рис. 32. Окно "Утилита удалённого запуска задач" с выделенным полем, содержащим заданные шаблоны команд с доступом к общей сетевой папке. - Установить свойство "Задержка переключения, мс" равным от 2000 до 3000. Данное свойство предназначено для обеспечения паузы между отправкой команд на разные компьютеры. Значение задержки подбирается экспериментально в зависимости от сложности проектов и скорости работы компьютеров.
- Перейти на вкладку "Экраны" и задать команды для различных вычислительных
узлов:
- В столбце "Адрес компьютера" записать IP адрес устройства, на котором будет рассчитываться соответствующий проект
- В столбце "Строка шаблона" записать номер строки шаблона команды, которая будет выполняться для соответствующего проекта. Нумерация строк начинается с 0
- В столбце "Команда" записать название проекта, который будет рассчитываться на соответствующем устройстве
Пример задания команд представлен на рисунке (Рисунок 33).
Рис. 33. Окно "Утилита удалённого запуска задач" с выделенной вкладкой "Экраны", полем с заданными командами для вычислительных узлов и кнопками "Загрузить все" и "Выгрузить все". - Запустить инициализацию проектов путем нажатия на кнопку "Запустить все". При этом будет осуществлена последовательная отправка команд на соответствующие узлы с задержкой, заданной с помощью свойства "Задержка переключения, мс". После успешной инициализации кнопками "Пуск", "Пауза" и "Стоп" с главного компьютера возможно управление расчетом.
Кнопка "Выгрузить все" предназначена для завершения работы SimInTech на всех вычислительных узлах путем отправки шаблона команды остановки на все устройства.