Таким образом, новая конфигурация программного обеспечения:
· Операционная система: 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
Для того, чтобы писать программы для исполнения в параллельной вычислительной машиной следует использовать стандартные вызовы библиотеки 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 | 144365,1 | 74368,11773 | -7 | 0,515139 | |||||
Прямая связь процессов новая конфигурация | |||||||||||
Количество процессов | Посылок по сети, B | Расчетов на узле, С | Время работы главного процесса (астрономическое),D | Суммарное процессорное время кластера, Е | Kp = log(C/B) | Kt2 = E/D | |||||
18 | 1 | 1000000000 | 119,7327823 | 1107,298489 | 9 | 9,248081 | |||||
18 | 10 | 100000000 | 139,0967096 | 1058,176217 | 7 | 7,607486 | |||||
18 | 100 | 10000000 | 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 | 10000000 | 100 | 15483,53345 | 22804,68602 | -5 | 1,472835 | |||||
18 | 100000000 | 10 | 114135,2611 | 165196,0456 | -7 | 1,447371 |
Обобщение результатов таблинчых значений:
№ | Количество процессов | Посылок по сети, B | Расчетов на узле, С | Kt2/Kt1 | Динамика Kt, % |
1 | 18 | 1 | 1000000000 | 77% | -23 |
2 | 18 | 10 | 100000000 | 81% | -19 |
3 | 18 | 100 | 10000000 | 83% | -17 |
4 | 18 | 1000 | 1000000 | 81% | -19 |
5 | 18 | 10000 | 100000 | 80% | -20 |
6 | 18 | 100000 | 10000 | 109% | 9 |
7 | 18 | 1000000 | 1000 | 177% | 77 |
8 | 18 | 10000000 | 100 | 253% | 153 |
9 | 18 | 100000000 | 10 | 281% | 181 |