Найти тему
DIY Robots

Кластер на Raspberry pi 4 [часть 2]

Оглавление

Доброго времени суток! Эта статья является продолжением 1 части.

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

Кластер из raspberry pi 4
Кластер из raspberry pi 4

Сегодня установим необходимые пакеты для измерения производительности:

  • MPI - интерфейс, при помощи которого происходит обмен сообщениями между процессами, выполняющими одну задачу,
  • ATLAS - библиотека линейной алгебры,
  • HPL - пакет с набором тестов для оценки производительности.

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

За работу

Открываем терминал на Raspberry и начинаем:

Устанавливаем gfortran:

sudo apt install gfortran automake

Создадим директорию для сборки наших пакетов и перейдем в нее:

mkdir ~/tmp
cd ~/tmp

Скачиваем исходники MPICH и распаковываем:
wget https://www.mpich.org/static/downloads/3.4a3/mpich-3.4a3.tar.gz
tar xzvf mpich-3.4a3.tar.gz

Переходим в распакованную директорию и начинаем сборку:

cd mpich-3.4a3
./configure --with-device=ch3:sock
make -j 4
sudo make install

Вернемся в нашу директорию tmp:

cd ~/tmp

Следующий шаг займет много времени.

Скачиваем, распаковываем и начинаем сборку Atlas:

wget https://sourceforge.net/projects/math-
atlas/files/Stable/3.10.3/atlas3.10.3.tar.bz2

tar xjvf atlas3.10.3.tar.bz2
mkdir -p ~/tmp/atlas-build
cd ~/tmp/atlas-build
../ATLAS/configure
make

Возвращаемся в tmp:

cd ~/tmp

Скачиваем, распаковываем и начинаем сборку Atlas:
wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz
tar xzvf hpl-2.3.tar.gz
cd hpl-2.3
cd setup
sh make_generic
cp Make.UNKNOWN ../Make.rpi
cd ..

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

gedit Make.rpi

Файл, после внесения поправок, должен выглядеть так:

# ----------------------------------------------------------------------
# - Platform identifier ------------------------------------------------
# ----------------------------------------------------------------------
#
ARCH = rpi
#
# ----------------------------------------------------------------------
# - HPL Directory Structure / HPL library ------------------------------
# ----------------------------------------------------------------------
#
TOPdir = $(HOME)/tmp/hpl-2.3
INCdir = $(TOPdir)/include
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
#
HPLlib = $(LIBdir)/libhpl.a
#
# ----------------------------------------------------------------------
# - Message Passing library (MPI) --------------------------------------
# ----------------------------------------------------------------------
# MPinc tells the C compiler where to find the Message Passing library
# header files, MPlib is defined to be the name of the library to be
# used. The variable MPdir is only used for defining MPinc and MPlib.
#
MPdir = /usr/local
MPinc = -I /usr/local/include
MPlib = /usr/local/lib/libmpich.so
#
# ----------------------------------------------------------------------
# - Linear Algebra library (BLAS or VSIPL) -----------------------------
# ----------------------------------------------------------------------
# LAinc tells the C compiler where to find the Linear Algebra library
# header files, LAlib is defined to be the name of the library to be
# used. The variable LAdir is only used for defining LAinc and LAlib.
#
LAdir = /home/pi/tmp/atlas-build
LAinc =
LAlib = $(LAdir)/lib/libf77blas.a $(LAdir)/lib/libatlas.a

Сохраняем и выходим из файла.

И последним шагом прописываем:

make arch=rpi

Итоги

На этом сегодня все! В следующей части, полностью настроим сетевое взаимодействие кластера и попробуем посчитать его производительность!

Спасибо за внимание! Всего Вам хорошего)