МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ УКРАЇНИ

“КИЇВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

На правах рукопису

Стіренко Сергій Григорович

УДК 004.382.2, 004.75

МЕТОДИ ТА ЗАСОБИ ЕФЕКТИВНОЇ ОБРОБКИ ПАРАЛЕЛЬНИХ ЗАДАЧ В КОМП’ЮТЕРНИХ КЛАСТЕРНИХ СИСТЕМАХ

Спеціальність 05.13.05 - Комп’ютерні системи та компоненти

Дисертація на здобуття наукового ступеня

доктора технічних наук

Науковий консультант:

Луцький Георгій Михайлович,

доктор технічних наук, професор

Київ - 2015 р.

ЗМІСТ

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ…………………………………….…………

8

ВСТУП ……………………………………………………………………………..………….

9

РОЗДІЛ 1. АНАЛІЗ ІСНУЮЧИХ РІШЕНЬ..………………..….…………………

23

1.1. Загальний огляд підходів до організації обчислень в сучасних паралельних комп’ютерних системах ………………………….………………...

23

1.2. Процес обробки завдання в паралельній обчислювальній системі ….

28

1.3. Загальна характеристика технологій програмування паралельних комп’ютерних систем…………………………………….………………...…..

31

1.4. Моделі взаємодії паралельних процесів ……………………………..…….

33

1.5. Модель програмування з явним створенням потоків……………………

35

1.6. Модель програмування зі структурним створенням потоків……….…

40

1.7. Модель програмування з неявним поділом задачі……………….………

44

1.8. Транзакційна пам’ять……………………………….………….…………..

45

1.9. Низькорівнева передача повідомлень ………………………………………

46

1.10. Модель програмування без блокувань………………..…………………..

47

1.11. Порівняння моделей програмування………………...…………………….

50

1.12. Загальний огляд пiдходiв до органiзацiї збереження даних при паралельних обчисленнях…………………………………………………..……..

52

1.13. Явне розпаралелювання з використанням директив компiлятора

56

1.14. Низькорiвневий iнтерфейс передачi повідомлень………….……….

62

1.15. Концепцiя вiдвантаження обчислень…………………..…………….

69

1.16. Технологiя вiдкладених обчислень …………………….……………

77

 

1.17. Порiвняльний аналiз технологiй програмування паралельних систем

83

 

Висновки до розділу 1………………………………….………………….

85

 

РОЗДІЛ 2. ТЕОРЕТИЧНІ ОСНОВИ ПОБУДОВИ ВИСОКОЕФЕКТИВНИХ ЗАСОБІВ ДИНАМІЧНОГО БАЛАНСУВАННЯ НАВАНТАЖЕННЯ…………………………..………….

90

 

2.1. Постановка задачі……………………………………………….………

90

 

2.2. Критерії ефективності розв’язання задачі та оцінка збалансованості навантаження……………………………………………..……………...….

90

 

2.3. Аналіз задач, що вирішуються на високопродуктивних обчислювальних системах………………..…………………………..…….

95

 

2.4. Динамічне балансування навантаження при розв’язанні задачі…….

101

 

2.5. Критерії вибору моделі програмування паралельних компютерних систем………………………………………………………………..……….

104

 

2.6. Недоліки моделі низькорівневої передачі повідомлень………..…….

106

 

2.7. Високорівневі абстракції для паралельних комп’ютерних систем з локальною пам’яттю………………………………………………..……….

108

 

2.8. Високорівнева передача повідомлень…………..……..……….…….

109

 

2.8.1. Загальні визначення……………………….….…….….……….

109

 

2.8.2. Узагальнений оператор поділу…………..….………………….

112

 

2.8.3. Вхідні дані для підзадачі. Поняття проміжку..……….………

112

 

2.8.4. Оператор обчислення..……………………………….…………

113

 

2.8.5. Оператор поділу проміжків…………………..……..….………

114

 

2.8.6. Поняття шляху поділу підзадачі……………...…….….………

116

 

2.8.7. Оператор об’єднання результатів……………..……..…………

117

 

2.8.8. Визначення завдання………………………………….…………

118

 

2.9. Підхід до балансування навантаження в реалізації моделі виcокорівневої передачі повідомлень……………….…………….……….

118

 

2.10. Способи організації попереднього поділу задачі………….……….

120

 

2.10.1. Загальні зауваження…………………………………….…..….

120

 

2.10.2. Поділ на підзадачі однакового порядку…………….……….

121

 

2.10.3. Поділ на підзадачі різного порядку………….……………….

124

 

2.11. Способи початкової розсилки підзадач………………….………….

126

 

2.11.1. Загальні зауваження………………………..………………….

126

 

2.11.2. Розсилка підзадач однакового порядку……………………….

126

 

2.11.3. Розсилка підзадач різного порядку………………………….

128

 

2.12. Способи організації основного циклу обчислень………………….

129

 

2.12.1. Загальні зауваження………………………….……………….

129

 

2.12.2. Без балансування навантаження………………...…………….

129

 

2.12.3. Балансування навантаження з перерозподілом від одного процесу………………….…………………………………..………….

131

 

2.12.4. Балансування навантаження з перерозподiлом вiд одного процесу та додатковим подiлом………………………..…………….

135

 

2.12.5. Балансування навантаження з перерозподiлом мiж усiма процесами та додатковим подiлом………………………..………….

135

 

2.12.6. Балансування навантаження з перерозподiлом мiж усiма процесами, додатковим подiлом та врахуванням топологiї…….......

136

 

2.13. Допустимi комбiнацiї способiв органiзацiї окремих етапiв балансування навантаження……………………………..………………….

136

 

Висновки до розділу 2……………………………………………………….

139

 

РОЗДІЛ 3. ТЕОРИТИЧНІ ОСНОВИ МЕХАНІЗМУ ВІДКЛАДЕННЯ ПОЧАТКУ ПЕРЕДАЧІ ДАНИХ……………………………………………….

142

 

3.1. Формулювання задачi визначення моменту початку передачi даних

142

 

3.2. Оцiнка ефективностi…………………………………………...……….

146

 

3.3. Вiдкладення передачi даних……………………………….………….

152

 

3.4. Пiдходи до органiзацiї вiдкладення передачi даних………………….

159

 

3.5. Пакетна системи виконання задач……………………….…………….

166

 

3.6. Динамiчна змiна зернистостi…………………………….…………….

171

 

3.7. Оцiнка швидкостi вводу-виводу……………………………………….

175

 

3.8. Пiдходи до динамiчної змiни зернистостi…………………………….

178

 

Висновки до розділу 3……………………………………………………….

181

 

Роздiл 4. Проведення експериментiв та аналiз результатів…………………………………………….………..……………….

185

 

4.1. Особливостi реалiзацiї запропонованих пiдходiв в кластерних системах……………………………………………………….……………..………….

185

 

4.2. Задачi, що використовувались в експериментах……….…………..…….

187

 

4.3. Проведення експериментів……………………………………..…………….

189

 

4.4. Ефективнiсть розв’язання задач без балансування навантаження….

190

 

4.5. Балансування навантаження з перерозподiлом вiд одного процесу………………………………………………………………………………….

195

 

4.6. Балансування навантаження з перерозподiлом вiд одного процесу та додатковим подiлом…………………………………………..………………….

201

 

4.7. Балансування навантаження з перерозподiлом мiж усiма процесами та додатковим подiлом……………………………………………………………….

204

 

4.8. Балансування навантаження з врахуванням топології………………….

208

 

4.9. Особливостi реалiзацiї моделі системи пакетної обробки задач …….

208

 

4.10. Задачi, що використовувались в експериментах ………………..…….

210

 

4.11. Час очiкування введення та виведення ……………………..……..…….

212

 

4.12. Використання пам’ятi у вузлах системи…………………..………..…….

213

 

4.13. Вплив на коефiцiєнт ефективностi…………………………………..…….

215

 

4.14. Перевiрка гiпотез щодо пiдходiв до змiни зернистостi………..…….

218

 

Висновки до розділу 4……………………………………………………………….

219

 

РОЗДІЛ 5. РЕАЛІЗАЦІЇ ДЛЯ КЛАСТЕРНИХ СИСТЕМ ТА АНАЛІЗ РЕЗУЛЬТАТІВ ЕКСПЕРІМЕНТІВ…..……………………….…….……………….

225

 

5.1. Особливостi реалiзацiї в кластерних системах……………….………….

225

 

5.2. Типи задач, для яких виконувалось тестування………………………….

228

 

5.3. Методика тестування…………………………………………….…………….

232

 

5.4. Використання пам’ятi у вузлах системи……………………..…………….

234

 

5.5. Час очiкування введення та виведення…………………………………….

236

 

5.6. Вплив на коефiцiєнт ефективностi……………………………………….….

238

 

5.7. Перевiрка гiпотез щодо способiв обчислення часу передачi даних….

243

 

Висновки роздiлу 5…………………………………………………………..……….

248

 

Розділ 6. Топологічна організація компютерної системи………………………….…………………………..……..………….

255

 

6.1. Автоматизація синтезу топології…………………………………………….

256

 

6.2. Математична постановка задачи…………………………………………….

258

 

6.3. Алгоритми синтезу без урахування відмов……………………………….

261

 

6.4. Алгоритм синтезу відмовостійкої топології………………….………….

262

 

6.5. Інтерфейс передачі повідомлень MPI………………..…………………….

265

 

6.5.1. Передача з блокуванням та без блокування……..……………….

267

 

6.5.2. Колективні взаємодії……………………..…………………………….

268

 

6.6. Віртуальні топології MPI…………………………………………….……….

269

 

6.7. Особливості реалізації аналізатора………………………………………….

271

 

6.7.1. Підхід до аналізу паралельних програм………..………………….

271

 

6.7.2. Підходи до трасування програм…………….……………………….

274

 

6.7.3. Поліпшення автоматичного інструментування………………….

275

 

6.7.4. Генерація матриці інформаційних потоків……………………….

277

 

6.7.5. Діаграма пропускних спроможностей процесів……………….

279

 

6.8. Синтез топології з коментарями………………………….………………….

281

 

6.9. Синтез складної топології…………………………………………………….

284

 

6.9.1. Чисельне інтегрування………………………………..……………….

286

 

6.9.2. Множення матриць………….…………………………….…………….

288

 

6.9.3. Введення даних…………………………..…….……………………….

289

 

6.9.4. Множення вектора на розріджену матрицю (SpMV)………….

292

 

6.10. Компіляція і збірка………………………….………………………………….

295

 

Висновки до розділу 6……………………………………………………………….

299

 

ВИСНОВКИ……………………………..……………………………….……….

302

 

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ……………………………….……….

304

 

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53