Организация распределенного сетевого расчета

На данной странице содержится информация об организации распределенного сетевого расчета в SimInTech на нескольких вычислительных узлах.

Комплексные модели принято декомпозировать на подсистемы согласно физике протекающих в них процессов и рассчитывать каждую из них в отдельном проекте. Пакетная организация SimInTech позволяет объединять проекты в общий пакет проектов и проводить их совместное моделирование. Проекты в пакете обмениваются данными друг с другом через общую базу данных сигналов SDB (англ. Signals Data Base). Если один компьютер не обладает достаточной производительностью для самостоятельного расчета объемной модели, то нагрузку можно распределить на несколько устройств.

База данных SimInTech позволяет организовать обмен данными между проектами в локальной сети без объединения проектов в пакет. Благодаря этому возможно организовать распределенный сетевой расчет комплексной модели на нескольких устройствах. Каждый проект должен иметь свою собственную базу данных, которые могут быть как полностью одинаковыми, так и отличаться. Обмен данными между проектами происходит по общим одноименным сигналам в базах данных.

Обмен данными через сеть в SimInTech при помощи базы данных SDB имеет свои особенности. Один из вычислительных узлов, участвующих в сетевом обмене, должен стать главным, то есть сервером. Сервер может как получать, так и отдавать данные остальным узлам, которые именуются клиентами. Клиенты, в свою очередь, также через базу данных SDB могут обмениваться данными между собой и с сервером. Как правило, в качестве сервера выбирается узел, содержащий главный центральный проект комплексной модели, например, модель объекта управления. Тогда остальные узлы, содержащие, например, модель алгоритмов системы управления или модель блоков управления оборудованием, становятся клиентами.

Настройка общего сетевого доступа

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

Перед началом настройки необходимо предоставить возможность другим устройствам в локальной сети обнаруживать сервер. Для этого выполните следующие действия (приведены для компьютеров под управлением операционной системы Windows):
  1. В области уведомлений нажмите на иконку "Доступ к Интернету" и выберите "Свойства" для сети, к которой будут подключены все устройства, участвующие в расчете (Рисунок 1).


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


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


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


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


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


    Рис. 6. Окно "Дополнительные параметры общего доступа" с требуемыми пунктами.

Теперь другие устройства в локальной сети смогут обнаруживать этот компьютер и получать доступ к его общим файлам. Однако сделать это можно будет только с помощью его логина и пароля. Чтобы избежать этого можно либо предоставить доступ к общей папке без ввода пароля всем компьютерам, находящимся в локальной сети, либо создать нового пользователя и предоставить ему доступ. В последнем случае доступ к общей папке будет только у тех устройств, которые зашли под новым пользователем.

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


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


Рис. 8. Окно "Администратор: Командная строка" с введенной командой создания нового пользователя.
При необходимости пользователя можно удалить. Для этого в командную строку требуется ввести:
 net user имя_пользователя /delete.

Следующим шагом является настройка общего доступа к папке с проектами.

Если доступ к папке предоставляется для всех компьютеров в локальной сети без ввода пароля, то:
  1. Выберите папку с проектами и одинарным нажатием правой кнопки мыши вызвать контекстное меню. Выбрать пункт "Свойства" (Рисунок 9).


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


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


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


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


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


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


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


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

Теперь любой компьютер, подключенный к одной локальной сети с сервером, может читать, записывать и изменять файлы, которые храняться в общей папке.

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


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


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


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


    Рис. 20. Окно "Доступ к сети" с выделенной кнопкой "Готово".
Теперь при попытке открыть общую папку с другого устройства появится окно "Ввод сетевых учетных данных". В качестве имени пользователя и пароля необходимо ввести данные, использованные при создании нового пользователя. Затем нажать кнопку "ОК" (Рисунок 21).


Рис. 21. Окно "Безопасность Windows" для ввода данных пользователя для получения доступа к общей папке.

Данные сетевые настройки можно пропустить. Тогда все настройки сервера и клиентов, а также возможные изменения в проекты придется вносить на каждом из расчетных узлов отдельно.

Изменение места хранения настроек базы данных

По умолчанию настройки базы данных хранятся в файле SDB. Поэтому при сетевом расчете каждому проекту требуется своя база данных сигналов. Однако если хранить настройки совместно с файлом проекта, то это позволит разным проектам подключаться к одной базе данных с разными настройками. При этом база данных может быть одинаковой для всех проектов.

Чтобы изменить место хранения базы данных выполните следующие действия:
  1. Откройте любой проект, который будет участвовать в распределенном расчете.
  2. В окне проекта нажмите кнопку "База данных..." (Рисунок 22).


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


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


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

Данный алгоритм необходимо повторить для каждого проекта, участвующего в распределенном расчете. Теперь настройки сервера и клиентов будут хранится совместно с файлом соответствующего проекта.

Прим.:
Файлы с расширением ".dbconf" и ".dblocalconf" хранят настройки базы данных совместно с SDB и файлом проекта соответственно. Удалять их из папки с проектом и базой данных не рекомендуется.

Настройка сервера

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

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


    Рис. 25. Окно "Редактор базы данных сигналов" с выделенной вкладкой "Настройки" и подразделом "Настройки сетевого обмена".
За настройку сервера сетевого обмена отвечает левый столбец открывшегося меню "Настройки сервера" (Рисунок 26).


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

После внесения необходимых изменений требуется сохранить проект и закрыть окно редактора базы данных.

Настройка клиента

За настройку клиента сетевого обмена в меню "Настройки сетевого обмена" отвечает правый столбец "Настройки клиента" (Рисунок 27).


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

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

После выполнения настроек необходимо сохранить проект и закрыть окно редактора базы данных. Аналогичным образом нужно провести настройку остальных клиентов.

Ручной запуск распределенного расчета

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

Для ручного запуска сетевого расчета выполните следующие действия:
  1. Нажмите кнопку "Инициализация" в окне проекта, выполняющего роль сервера, для инициализации расчета проекта на сервере
  2. Нажмите кнопку "Инициализация" в окне каждого из проектов, выполняющих роль клиента. В области сообщений каждого проекта при этом не должно возникать ошибок
  3. Нажмите кнопку "Пуск" для запуска распределенного расчета

После этого начнется распределенный расчет с синхронизацией модельного времени и обменом данными по сигналам базы данных SDB. При нажатии кнопок "Пуск", "Пауза" и "Стоп" с сервера аналогичные команды будут выполнены на всех клиентах.

Для контроля работы сетевого обмена между вычислительными узлами необходимо открыть вкладку "Состояние сети" в редакторе базы данных. В этой вкладке содержится информация о:
  • Статусе подключения клиентов
  • Количестве подключенных к серверу клиентов в данный момент
  • Именах и значениях сигналов, которыми обмениваются проекты

Настройка запуска сетевого расчета в автоматизированном режиме

Процесс запуска распределенного расчета возможно автоматизировать, то есть, запускать все проекты на расчет с одного компьютера — с сервера. Для этого необходимо использовать две вспомогательные утилиты, поставляющиеся вместе с программным обеспечением SimInTech: "Сервер удаленного расчета" и "Утилиту массового запуска и синхронизации". Данные утилиты находятся в директории установки программы, путь по умолчанию "SimInTech\bin" (Рисунок 28):
  • Утилита "Сервер удаленного расчета" — Proxy.exe
  • Утилита "Утилита массового запуска и синхронизации" — remscrcontrol.exe


Рис. 28. Вид утилит в директории установки SimInTech.
Также данные утилиты возможно найти папке SimInTech в меню "Пуск" в Windows (Рисунок 29).


Рис. 29. Вид утилит в меню "Пуск"
Утилита "Сервер удаленного расчета" предназначена для выполнения команд, поступающих по сети от "Утилиты массового запуска и синхронизации". Данную программу необходимо запустить на каждом из компьютеров, участвующих в распределенном расчете. Для автоматического запуска утилиты вместе с операционной системой ее можно добавить в автозагрузку. Для этого требуется:
  1. Перейти в папку "Автозагрузка": C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
  2. Скопировать в папку "Автозагрузка" ярлык программы "Сервер удаленного расчета" (Рисунок 30)


Рис. 30. Добавление утилиты "Сервер удаленного доступа" в папку "Автозагрузка"
При запуске утилиты появится соответствующая иконка в области уведомлений Windows.

"Утилита массового запуска и синхронизации" позволяет в автоматизированном режиме отправлять команды для командной строки Windows на исполнение нескольким компьютерам в одной локальной сети. Для запуска распределенного расчета нужно для каждого устройства прописать команду на открытие в SimInTech соответствующего проекта и инициализацию его на расчет.

Для работы с утилитой массового запуска необходимо:
  1. Запустить "Утилиту массового запуска и синхронизации" и перейти на вкладку "Настройки".
  2. Создать шаблоны команд в зависимости от расположения проектов на том устройстве, на котором они будут запущены. Если проекты будут запущены на разных устройствах, но при этом расположены в одной директории, то шаблон для них будет одинаковым. Если проект, который лежит в общей сетевой папке, будет запущен на клиенте, в шаблоне необходимо прописать путь UNC с указанием имени хоста - имени компьютера, на котором локально хранится общая папка. Шаблон команды для открытия и инициализации проекта выглядит следующим образом:
    mstarter.exe "директория рассчитываемого проекта\%command%" /start;
    Пример задания шаблонов команд представлен на рисунке (Рисунок 31).


    Рис. 31. Окно "Утилита удалённого запуска задач" с выделенной вкладкой "Настройки" и полем с заданными шаблонами команд.
    Пример задания шаблонов команд для расчета проектов, хранящихся в одной сетевой папке, представлен на рисунке (Рисунок 32).


    Верхняя строка является шаблоном команды для запуска на сервере. Нижняя строка - шаблон для запуска на клиентах, при условии, что все файлы лежат в одной общей сетевой папке.

    Рис. 32. Окно "Утилита удалённого запуска задач" с выделенным полем, содержащим заданные шаблоны команд с доступом к общей сетевой папке.
  3. Установить свойство "Задержка переключения, мс" равным от 2000 до 3000. Данное свойство предназначено для обеспечения паузы между отправкой команд на разные компьютеры. Значение задержки подбирается экспериментально в зависимости от сложности проектов и скорости работы компьютеров.
  4. Перейти на вкладку "Экраны" и задать команды для различных вычислительных узлов:
    • В столбце "Адрес компьютера" записать IP адрес устройства, на котором будет рассчитываться соответствующий проект
    • В столбце "Строка шаблона" записать номер строки шаблона команды, которая будет выполняться для соответствующего проекта. Нумерация строк начинается с 0
    • В столбце "Команда" записать название проекта, который будет рассчитываться на соответствующем устройстве
    Пример задания команд представлен на рисунке (Рисунок 33).


    Рис. 33. Окно "Утилита удалённого запуска задач" с выделенной вкладкой "Экраны", полем с заданными командами для вычислительных узлов и кнопками "Загрузить все" и "Выгрузить все".
  5. Запустить инициализацию проектов путем нажатия на кнопку "Запустить все". При этом будет осуществлена последовательная отправка команд на соответствующие узлы с задержкой, заданной с помощью свойства "Задержка переключения, мс". После успешной инициализации кнопками "Пуск", "Пауза" и "Стоп" с главного компьютера возможно управление расчетом.

Кнопка "Выгрузить все" предназначена для завершения работы SimInTech на всех вычислительных узлах путем отправки шаблона команды остановки на все устройства.