Предыдущая конфигурация программного обеспечения кластерной системы позволяла использовать пропускную способность сетевого интерфейса лишь на 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 |


