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

Старая конфигурация программного обеспечения:

·  Операционная система: Ubuntu Linux v.8.10

·  Механизм коммуникации: внутренние механизмы связи PVM, основанные на стандартном транспортном протоколе.

·  Интерфейс управления кластером: консоль PVM 3.4.2, GNU bash, version 3.2.48.

·  Компилятор: GCC (GNU Compiler Collection) v.4.3.

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

1)  Переустановка операционной системы.

Старая операционная система была заменена на более новую Ubuntu 9.10, с более новым ядром.

2)  Установка и настройка PVM.

PVM версии 3.4.5. была скачана с официального сайта: http://lib. org/pvm3/index. html. Распаковав скачанный архив в домашнюю папку пользователя (~/pvm3/). В конфигурационный файл командного интерпретатора bash (/etc/bash. bashrc) добавлены следующие строчки:

#pvm configuration

export PVM_ROOT=/home/root/pvm3

if [ - z $PVM_ROOT ]; then

if [ - d ~/pvm3 ]; then

export PVM_ROOT=~/pvm3

else

echo "Warning - PVM_ROOT not defined"

echo "To use PVM, define PVM_ROOT and rerun your. bashrc"

fi

fi

if [ - n $PVM_ROOT ]; then

export PVM_ARCH=`$PVM_ROOT/lib/pvmgetarch`

НЕ нашли? Не то? Что вы ищете?

export PATH=$PATH:$PVM_ROOT/lib/$PVM_ARCH # arch-specific

export PATH=$PATH:$PVM_ROOT/bin/$PVM_ARCH

fi

export PVM_PATH=$PVM_ROOT/bin/$PVM_ARCH

export PVM_DPATH=pvm3/lib/pvmd

export PVMHOSTFILE=/home/root2/.rhosts

В системе установлен SSH. Для коммуникаций, PVM использует RSH или SSH, по умолчанию в файле конфигурационном файле для каждой операционной системы в PVM (например, для Linux 64-bit: ~/pvm3/conf/LINUX64.def), стоит RSH, но лучше использовать SSH. Для этого в этом файле нужно прописать значение переменной ARCHCFLAGS, параметр RSHCOMMAND должен содержать путь к команде SSH, например DRSHCOMMAND=\"/usr/bin/ssh\" .

В каталоге /pvm3 выполняем команду для сборки и установки:

make

По окончании ее работы PVM будет готова к использованию. (На одном из этапов выполнения, команда завершилась выходом с ошибкой из-за отсутствия библиотеки m4_1.4.13-2_amd64, которая необходимо было скачать через sudo apt-get install m4 из интернета.)

На этом процесс установки и настройки PVM завершен. Для удобства работы, данная конфигурация была скопирована на все узлы кластера.

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

Выполнена процедура создания беспарольного доступа пользователя root2 с консоли кластера на узлы кластера по протоколу SSH. Беспарольный доступ обеспечит более комфортную работу в PVM. Так, отпадет необходимость вводить пароли доступа при добавлении каждого нового узла и при копировании исполняемых модулей в локальные файловые системы узлов кластера. Алгоритм обеспечения беспарольного доступа следующий:

а) Логинимся к консоли кластера: ssh root2@server

б) Переходим в каталог ssh: cd ~/.ssh

в) Генерируем rsa-ключи: ssh-keygen - t rsa

г) На вопрос задать имя файла жмем Enter - остается имя по умолчанию id_rsa.

д) На просьбу задать пароль жмем Enter два раза (второй раз для проверки).

е) Копируем публичный ключ на узел кластера: scp id_rsa. pub

ж) root2@phys1:~/.ssh

з) Логинимся к узлу phys1: ssh root2@phys1

и) Переходим в каталог ssh: cd ~/.ssh

к) Копируем публичный ключ: cat id_rsa. pub >> authorized_keys2

л) Отключаемся от узла phys1

м) Повторяем пункты 6-10 для остальных узлов кластера (phys2 ... physN).

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

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

Для автоматического подключения узлов кластера в PVM в файле ~.rhosts были указаны имена всех хостов, которые должны входить в кластер и подключаться автоматически при старте PVM. В данном файле они указываются по принципу одно имя хоста - одна строчка, также в этом же файле можно указать дополнительные особенности конфигурации PVM на узлах кластера, за более подробным описанием данного файла рекомендуется обратиться к руководству PVM.

Для автоматической проверки конфигурации кластера в файл ~.pvmrc была введена команда conf. Данный файл PVM считывает построчно при запуске и исполняет все команды стоящие каждой строке, если она не начинается с символа комментария(#).

3)  Установка и настройка XPVM.

Установка графической консоли проводилась только на главном узле кластера командой: sudo apt-get install xpvm .

Для автоматической регистрации хостов в XPVM в файл ~.xpvm_host необходимо добавить также как и в файл. rhosts имена хостов по тому же принципу.

Таким образом, новая конфигурация программного обеспечения:

·  Операционная система: Ubuntu Linux v. 9.10 kernel 2.6.31-14

·  Механизм коммуникации: внутренние механизмы связи PVM, основанные на стандартном транспортном протоколе.

·  Интерфейс управления кластером: консоль PVM 3.4.5, GNU bash, version 4.0.33(1), SSH, CSSH, XPVM 1.2.5 .

·  Компилятор: GCC (GNU Compiler Collection) v. 4.1.1

  Процесс компиляции собственного программного обеспечения для работы с PVM.

Для того, чтобы писать программы для исполнения в параллельной вычислительной машиной следует использовать стандартные вызовы библиотеки pvm3.h, необходимо указывать дополнительный набор ключей для осуществления процесса компиляции ПО. Компиляция ПО проводилась в Qt-creator. Дополнительный набор ключей указывался в *.pro файле проекта: QMAKE_LIBS += - lpvm3 - lrt .

Обязательным условием для гетерогенных установок является компиляция исходных кодов ПО для каждой системы в отдельности, в нашем случае LINUX64. Далее следует разослать на все узлы кластера исполняемый файл, т. е. скопировать его в каталог ~/pvm3/bin/LINUX64 на каждом узле.

1.1.  Тестирование новой конфигурации вычислительной системы.

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

1.1.1. Нагрузочное тестирование сети.

Сначала выполняется нагрузочного тестирования сети, как самого слабого звена в структуре кластера. Для этого был реализован параллельный алгоритм решения квадратного уравнения, коэффициентами которого являются случайные вещественные числа. Исходный текст программы был дополнен необходимыми изменениями, связанными с параметрами работы PVM, и представлен в Приложении к данной работе.

Для выявления участков работы кластера предлагается несколько коэффициентов. Kp - отношение количества расчетов на узле к количеству посылок данных по сети. Kt - отношение суммарного процессорного времени к астрономическому времени работы главного процесса.

Коэффициент Kp – не меняется при данном тестировании по отношению к предыдущему. Коэффициент Kt используется для анализа прироста производительности кластера с учетом новой конфигурации системы и новыми условиями работы тестовой программы. Под новыми условиями работы понимается следующее: в старой конфигурации кластера процессы на разных узлах кластера предавали сообщения друг другу обычным способом, через посредника – демон pvmd, в новой конфигурации кластера программа скомпилирована таким образом, чтобы механизм коммуникаций между задачами работал на прямую, минуя демон pvmd, т. е. каждая задача самостоятельно предает нужные данные другим задачам и соответственно делают также. Таким образом, достигается значительный выигрыш в производительности всей кластерной системы при расчете на ней сильно связанной задачи, требующей частой синхронизации процессов. Об этом свидетельствуют следующие факторы:

1)  Скорость пересылки информации по сети увеличивается с 1,5 МБайт/с (10 Мбит/c) до 7,5 Мбайт/с (60 Мбит/с), данный показатель был зафиксирован в Системном мониторе Ubuntu, где отражается статистика загрузки сети.

2)  В новой конфигурации коэффициент Kt значительно увеличивается в процентном отношении к старой конфигурации, о чем свидетельствуют приведенный ниже таблицы результатов тестирования и диаграммы, динамики прироста (рис.2) и общей динамики данного коэффициента (рис.3)

Обычная связь процессов старая конфигурация

Количество процессов

Посылок по сети, B

Расчетов на узле, С

Время работы главного процесса (астрономическое),D

Суммарное процессорное время кластера, Е

Kp = log(C/B)

Kt1 = E/D

18

1,00E+00

1,00E+09

99,10054

1186,258957

9

11,97026

18

1,00E+01

1,00E+08

112,6868

1058,926276

7

9,397075

18

1,00E+02

1,00E+07

107,7564

1038,060469

5

9,633397

18

1,00E+03

1,00E+06

113,0704

1033,268205

3

9,13827

18

1,00E+04

1,00E+05

144,8674

1038,608148

1

7,16937

18

1,00E+05

1,00E+04

341,0926

1115,252644

-1

3,269648

18

1,00E+06

1,00E+03

1592,878

1791,672389

-3

1,124802

18

1,00E+07

1,00E+02

14682,29

8547,911557

-5

0,582192

18

1,00E+08

1,00E+01

1

74368,11773

-7

0,515139

Прямая связь процессов новая конфигурация

 

Количество процессов

Посылок по сети, B

Расчетов на узле, С

Время работы главного процесса (астрономическое),D

Суммарное процессорное время кластера, Е

Kp = log(C/B)

Kt2 = E/D

 

18

1

119,7327823

1107,298489

9

9,248081

 

18

10

139,0967096

1058,176217

7

7,607486

 

18

100

127,1325296

1018,450738

5

8,010937

 

18

1000

1000000

147,4517699

1092,258965

3

7,407568

 

18

10000

100000

212,6682274

1212,215327

1

5,70003

 

18

100000

10000

387,8083071

1385,465934

-1

3,572554

 

18

1000000

1000

1702,352634

3398,62797

-3

1,99643

 

18

100

15483,53345

22804,68602

-5

1,472835

 

18

10

2611

0456

-7

1,447371

 


Обобщение результатов таблинчых значений:

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4