Паралельні та розподілені обчислення

Get Started. It's Free
or sign up with your email address
Паралельні та розподілені обчислення by Mind Map: Паралельні та розподілені обчислення

1. Продуктивність

1.1. Фактори

1.2. Способи підвищення

1.3. Прискорення

1.4. Ефективність

1.5. Обмеження

1.5.1. Закон Амдала

1.5.2. Закон Густафсона-Барсиса

1.6. Масштабовність системи

2. Для чого вивчати

2.1. Мета:

2.1.1. засвоєння основних методів та алгоритмів організації паралельних та розподілених обчислень, принципів побудови відповідних структур, набуття початкових практичних навиків проектування та програмування таких засобів для розв'язання типових задач прикладної математики.

2.2. Завдання:

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

2.3. Результати:

2.3.1. - базові поняття, класифікація; - складові частини архітектури різних класів; - основні методи і засоби паралельної та розподіленої обробки інформації; - методи і технології паралельного програмування; - етапи і способи розпарелелення задач; - алгоритми, технології та мови паралельного програмування; - ефективність паралельних обчислень; - проблеми реалізації паралелелізму; - причини недостовірності обчислювального рішення.

3. Архітектура

3.1. Класифікація

3.1.1. Класифікація Флінна: потік задач - потік даних

3.1.2. Класифікація Хокні (МIMD)

3.2. Спільна vs Розділена оперативна пам'ять

3.2.1. Мультипроцесорні системи із спільною пам'яттю

3.2.1.1. Конвеєр

3.2.1.2. PVP

3.2.1.3. SPM

3.2.2. Мультикомп'ютерні системи із розділеною пам'яттю

3.2.2.1. МРР

3.2.2.2. Кластери

3.2.2.3. ГРІД

3.2.2.4. Метакомп'ютинг

3.2.3. Гібриди

3.2.3.1. NUMA

3.2.3.2. Багаторівневі комбіновані системи

3.3. Комунікації, топологія

3.3.1. Алгоритми маршрутизації

3.3.2. Діаметр мережі

3.3.3. Пакети, потоки

3.3.4. Передача даних

4. Сучасний стан

4.1. Області застосування

4.2. Задачі, Перспективи

4.3. Проблеми

5. Попередні знання

5.1. Архітектура обчислювальних систем

5.2. Операційні системи

5.3. Комп'ютерні мережі

5.4. Лінійна алгебра

5.5. Чисельні методи

5.6. Дискретна математика

6. Алгоритмізація, програмування

6.1. Паралельна обробка даних

6.1.1. Процес, потік

6.1.1.1. Паралельні потоки

6.1.1.2. Паралельні процеси

6.1.1.3. Гранули розпаралелення

6.1.2. Ресурс

6.1.2.1. Спільний

6.1.2.1.1. Критична область

6.1.2.1.2. Стан гонитви

6.1.2.1.3. Взаємне виключення

6.1.2.1.4. Синхронізація

6.1.2.2. Розділений

6.1.2.2.1. Комунікація процесів

6.1.3. Рівні паралелелізму

6.1.3.1. Паралелелізм задач

6.1.3.2. Паралелелізм даних

6.1.4. Операційні системи

6.1.4.1. Багатопроцесорні

6.1.4.2. Розподілені

6.2. Паралельний алгоритм

6.2.1. Декомпозиція

6.2.2. Планування комунікацій

6.2.2.1. Графи

6.2.2.2. Мережі Петрі

6.2.3. Масштабування

6.2.4. Розподіл підзадач між вузлами

6.2.5. Похибки комп'ютерних обчислень

6.3. Моделі програмування

6.3.1. SPMD (паралелізм даних)

6.3.1.1. SІMD

6.3.1.1.1. Потік

6.3.2. МPMD (паралелізм задач)

6.3.2.1. Процес

6.4. Технології програмування

6.4.1. Спеціальні паралельні мови

6.4.2. Послідовні мови із надбудовами та бібліотеками

6.4.2.1. OpenMP

6.4.2.1.1. Потік

6.4.2.2. МРІ

6.4.2.2.1. Процес

6.4.2.2.2. Група

6.4.2.2.3. Комунікатор

6.4.2.3. C++, C#, Java

6.4.2.3.1. C#, .Net Framework

6.4.2.3.2. Розпаралелення циклів

6.4.3. Автоматичне розпаралелення компілятором

7. Паралельне розв’язування прикладних задач

7.1. Сума послідовності чисел

7.2. Інтеграл. Число пи

7.3. Сортування

7.3.1. Бульбашкове

7.3.2. Шелла

7.3.3. Швидке сортування

7.4. Матричні операції

7.4.1. Матриця Х Вектор

7.4.2. Матриця Х Матриця

7.5. Системи лінійних рівнянь

7.5.1. Прямі методи

7.5.1.1. Гауса

7.5.2. Ітераційні методи

7.5.2.1. Якобі