Создание вычислительного кластера для последующей работы с Open MPI

Данная инструкция предназначена для настройка вычислительного кластера на операционных системах Debian/Astra Linux/Ubuntu

1) Создаем два устройства с именами (main_nod, 1_nod) число будущих узлов не ограничено В настройках сети мы используем сетевой мост

  1. Запускаем устройства

3) Открываем терминал В открывшемся теминале мы создаем пользователя для запуска MPI Последовательно вводим представленные команды

\[sudo adduser mpiuser sudo usermod -aG sudo mpiusersu mpiuser\]

4) Проверяем свой Ip адрес для настройки соединения Последовательно вводим представленные команды

\[sudo apt-get install net-tools ifconfig\]

5) Создаем соединение между узлами(устройствами) Последовательно вводим представленные команды

\[sudo nano /etc/hosts\]

в открывшемся файле на main_nod пишем ip адрес который мы узнали в пункте 4 и имя хоста для каждого узла

\[127.0.0.1 localhost 10.1.20.1 master 10.1.20.2 nod1\]

На остальных узлах пишем ip адрес и имя main_nod

\[127.0.0.1 localhost 10.1.20.1 master\]

6) Проверяем соединение между узлами Последовательно вводим представленные команды

\[Ping master ping nod1\]

7) Желательно обновить пакеты операционных систем на всех узлах до последних версий, для правильной работы Open MPI Open MPI требует, чтобы операционные системы были одинаковыми Последовательно вводим представленные команды

\[sudo apt-get update sudo apt-get upgrade\]

8) Устанавливаем и настраиваем ssh сервер + ssh клиент Последовательно вводим представленные команды

\[sudo apt-get install openssh-server openssh-client mkdir ~/.ssh chmod 700 ~/.ssh\]

Создаем ssh ключ только на main_nod

\[cd ~/.sshssh-keygen -t rsa cp id_rsa.pub authorized_keys chmod 600 authorized_keys ssh-copy-id nod1 (тут вводятся имена хостов в которые копируется ключ)\]

Копируем ssh-ключ на остальные узлы

\[cat id_rsa (этот ключ берем на master_nod) nano id_rsa (вставляем ключ из id_rsa на каждой ноде) chmod 600 id_rsa nano authorized_keys chmod 600 authorized_keys\]

Создаем sshd_configure файл и перезапускаем ssh сервер

\[sudo nano /etc/ssh/sshd_config\]

вводим в открывшийся файл

\[PubkeyAuthentication yes RSAAuthentication yes\]

Перезапускаем ssh-сервер

\[sudo service ssh restart\]
  1. Подключаемся по ssh к узлам

\[ssh nod1\]
  1. Устанавливаем NFS сервер на master_nod

\[sudo apt-get install nfs-kernel-server\]

11) Создаем общую директорию в которой будет запускаться PRADIOS Последовательно вводим представленные команды

\[sudo apt-get install nfs-kernel-server sudo chown nobody:nogroup /home/mpiuser/Desktop/sharedfolder sudo chmod 777 /home/mpiuser/Desktop/sharedfolder\]
  1. Создаем экспорта файл

\[sudo nano /etc/exports\]

в этот файл вводим для кажого узла

\[/home/mpiuser/Desktop/sharedfolder nod1(rw,sync,no_subtree_check) /home/mpiuser/Desktop/sharedfolder nod2(rw,sync,no_subtree_check)\]

вводим в теминале

\[sudo exportfs -a\]
  1. Перезапускае NFS-сервер

\[sudo systemctl restart nfs-kernel-server\]
  1. Проверяем работу firewall, если включен, требуется отклбючить

\[sudo ufw status\]

15) Устанавливаем nfs client на все узлы и создаем общую директорию Последовательно вводим представленные команды

\[sudo apt-get install nfs-commonsudo mkdir -p /home/mpiuser/Desktop/sharedfolder sudo chown nobody:nogroup /home/mpiuser/Desktop/sharedfolder sudo chmod 777 /home/mpiuser/Desktop/sharedfolder sudo mount master:/home/mpiuser/Desktop/sharedfolder /home/mpiuser/Desktop/sharedfolder\]

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