Организация распределенной вычислительной сети из офисных компьютеров (офисный кластер) с ОС Windows с использованием MS MPI v.7 и более поздних версий

Для увеличения производительности вычислений при решения сложных задач гидро и газодинамики в ПК FlowVision зачастую целесообразно использовать более одного процессора. Для этих целей используются многопроцессорные рабочие станции, а так же кластеры, представляющие из себя несколько компьютеров, объединенных в единую систему. С этой точки зрения, объединенные локальной сетью офисные компьютеры также являются кластером и могут быть использованы для повышения производительности вычислений. Кроме того, организовав такую вычислительную сеть, появляется возможность осуществлять расчеты, на тех компьютерах, которые не загружены задачами в данный момент. В том числе, данный подход позволяет удобным способом задействовать для расчетов компьютеры сотрудников, которые по каким-то причинам отсутствуют на рабочем месте. Таким образом, появляется возможность использовать парк ЭВМ предприятия на 100%: по ночам, по выходным, во время отпусков и командировок сотрудников.

офисный кластер

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

  • солвера могут запускаться как на вычислительных, так и на головном узле;
  • для запуска солверов на вычислительных узлах нет необходимости установки на них FlowVision, однако для работы с клиентскими модулями (ПреПостпроцессор, Терминал, Модуль просмотра и др.) непосредственно на этих компьютерах (а не удаленно) установка на них FlowVision необходима;
  • на головном узле обычно также удобно установить лицензионный менеджер и зарегистрировать лицензию.

Для осуществления запусков солверов в рамках такой вычислительной сети необходимо:

  1. На всех компьютерах, на которых осуществляется запуск Солверов и Солвер-агента, должен быть установлен  MS MPI v.7 (рис. 1).
  2. На головном узле должен быть установлен FlowVision в директорию, доступную для всех узлов по сетевому пути, например \\HeadMachine\SharedWorkDirectory (рис. 1).
  3. Каталог с настройками Солвера и Солвер-Агента также должен быть доступен со всех узлов по единому сетевому пути (например \\HeadMachine\SharedWorkDirectory\Settings) для чтения и записи. Этот сетевой путь должен быть прописан в файл Fv.cfd , например:
    HOMESRV=\\HeadMachine\SharedWorkDirectory\Settings
  4. На всех компьютерах должна быть запущена служба MS-MPI Launch Service (MsMpiLaunchSvc) (рис. 2). По умолчанию, в Windows службы запускаются от пользователя SYSTEM.
  5. MS MPI должен иметь права на запуск приложений (в частности FvSolver64) на всех вычислительных узлах от имени одного и того же (для всех машин) пользователя, зарегистрированного в операционной системе, например SharedUser, имя и пароль которого одинаковы на всех машинах (рис. 3).
  6. Солвер-Агент должен быть запущен от имени пользователя SharedUser (рис. 2-3).
  7. В строке запуска солвера для mpiexec.exe должен быть указан параметр -wdir за которым следует сетевой путь в каталог с установленным FlowVision (см.пункт 2) (рис. 3).
  8. В строке запуска солвера для mpiexec.exe должен быть указан параметр –pwd за которым следует пароль от пользователя SharedUser, например SharedUserPassword (рис. 3).
  9. В строке запуска солвера для mpiexec.exe должен быть указан параметр –machinefile за которым следует путь до текстового файла hosts.txt, например С:\DirForMachinefileOnHeadMachine\hosts.txt (рис. 3).
  10. Файл hosts.txt должен быть доступен для чтения с головного узла по указанному пути и содержать список IP-адресов узлов, на которых необходимо запустить солвера.
  11. Все узлы вычислительной сети должны иметь доступ к лицензионному менеджеру по указанному в настройках солвера (FvSolver.cfg) IP-адресу (FvLicenseHost) и порту (FvLicensePort).
  12. На любой из машин в вычислительной сети должен быть создан каталог для расчетных проектов, доступный всем узлам по сетевому пути, например  //SomeMachine/ProjectSharedDir. Этот каталог должен быть указан в качестве серверной директории для пользователя Солвер-Агента. (Прим.: пользователей Солвер-Агента может быть несколько, для каждого из которых может быть собственный каталог с расчетными проектами, доступный всем узлам по сетевому пути)

MS MPI and FlowVision

Рис. 1. Установка MS MPI и FlowVision на узлы вычислительной сети

 

MsMpiLaunchSvc and FvSolverAgent

Рис. 2. Запуск службы MsMpiLaunchSvc и приложения FvSolverAgent

 

FvSolverAgent and MS MPI

Рис. 3. Запуск многопроцессорных солверов при помощи Солвер-Агента с использованием MS MPI

 

Пример строки запуска в файле FvSolverAgent.cfg:
SolverCmdLineMPI="C:\Program Files\Microsoft MPI\Bin\mpiexec.exe" -n %1 -machinefile "С:\DirForMachinefileOnHeadMachine\hosts.txt" -pwd SharedUserPassword –wdir "\\HeadMachine\SharedWorkDirectory" FvSolver64.exe mpi=libFvMPI_MSMPI_v7_x64.dll ; MyDescription

В результате выполнения этой строки на каждом компьютере, перечисленном в файле hosts.txt, MPI авторизуется от имени SharedUser с паролем SharedUserPassword и запустит копии процесса \\HeadMachine\SharedWorkDirectory\FvSolver64.exe (рис. 3).

Файл hosts.txt, называемый также Файл машин MPI - текстовый файл (txt), строки которого содержат сетевые имена компьютеров, на которых будет запущен Солвер. В каждой строке после имени компьютера через пробел (для MS MPI) может следовать количество MPI-процессов, которое будет запускаться на данном компьютере. Чаще всего, будет оптимальным указывать эти количества MPI-процессов равными количеству процессоров (или NUMA узлов), установленных на данном компьютере. Если количество процессов не указано в какой-либо строке, то на соответствующем компьютере будет запускаться только один MPI-процесс. Имена компьютеров в файле машин могут повторяться. Процессы Солвера запускаются на компьютерах в той последовательности, в которой компьютеры указаны в файле машин и, после запуска на последнем компьютере, если еще не все заказанные процессы распределились, процессы продолжают запускаться снова на первом компьютере, затем на следующем и т.д. (циклично).

Пример файла машин MPI для запуска Солвера на одном компьютере:
192.168.1.2

Пример файла машин MPI для запуска Солвера на кластере, узлы которого имеют по одному процессору:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4

Содержание файла машин, при наличии на узле более одного процессора:
При наличии на узле нескольких процессоров, в соответствующей строке файла машин необходимо явно количество процессоров. Ниже показан пример файла машин для MS MPI, число процессов указывается через пробел после имени либо адреса узла:
192.168.1.1 2
192.168.1.2 2
192.168.1.3 2
192.168.1.4 2

attention

Некоторые подробности и особенности:
1.    В процессе установки MS MPI v.7, если на компьютере уже была установлена более ранняя версия MS MPI, инсталлятор может предложить выполнить обновление или выдаст оповещение:

MS-MPI Instaletion faild with error code 4317...

В случае получения такого оповещения необходимо удалить старую версию MS MPI или MS HPC pack с помощью стандартного средства удаления программ Windows, а затем снова запустить инсталлятор MS MPI v.7


2.    После автоматической установки MS MPI v.7 служба MS-MPI Launch Service (MsMpiLaunchSvc) также будет установлена, однако не будет запущена. Её необходимо запустить вручную. Как правило, также удобно настроить автоматический запуск службы при старте операционной системы Windows. Такую настройку можно сделать в Панель управления/Администрирование/Службы

6

3.    Как правило, также удобно настроить автоматический запуск Солвер-Агента от пользователя SharedUser при старте операционной системы Windows на головном узле. Для этого можно воспользоваться Автозагрузкой приложений Windows.

Об авторе
Виктор Акимов
Author: Виктор Акимов
Инженер первой категории
к.т.н., МГТУ им. Баумана Экспертиза в областях: CFD, двигатели внутреннего сгорания, суперкомпьютеры