Смекни!
smekni.com

«Оптимизация кластерной системы на базе pvm компьютерной лаборатории физического факультета» (стр. 5 из 9)

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

· Операционная система: 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

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

Из диаграммы видно, что при значении посылок сообщений по сети больше 100 тысяч, наблюдается значительный прирост коэффициента Kt. Таким образом, за счет прямой коммуникации задач в PVM эффективность кластерной системы возрастает при очень высокой связности вычислений. Небольшой снижение в динамике коэффициента Kt при малом количестве посылок по сети связано с тем, что время, затраченное на отправку сообщения: инициализация буфера передачи, упаковка сообщения, отсылка – приплюсовывается ко времени счета данной задачи, так как она сама выполняет эти действия, в то время как при старой конфигурации кластера эти действия за нее выполнял демон. Если оценивать такой показатель, как Астрономическое время работы главного процесс (D), то данный параметр также уменьшается при значительном увеличении количества посылок по сети, что видно из табличных значений. Также из них видно, что суммарное процессорное время кластера (Е) увеличивается при новой конфигурации, т.е. кластер считает дольше, но зато повышается эффективность его использования при сильно связанных вычислениях, так как значение коэффициента Kt стремится к значениям меньше 1 медленно, с ростом числа посылок по сети, по сравнению с предыдущей конфигурацией кластера, когда оно достигало их уже при миллионе пересылок по сети. Если значение коэффициента Kt становится меньшим 1, это говорит о том, что данную задачу затратно решать данным способом на кластере, так как скорость счета одной машины становиться больше скорости счета всей кластерной системы в целом, что видно из табличных значений старой конфигурации. Данный прирост производительности кластера не является предельным, зависит от коэффициента Kp, например, одном из тестирований он был равен log(100/10000) = -2 , то Kt возрос на 259% от старой конфигурации.