- •Питання:
- •Області застосування і задачі паралельної обробки
- •5. Рівні розпаралелювання
- •Рівень процедур
- •6. Паралельні операції
- •7. Основні принципи паралелізму (розпаралелення)
- •8. Класифікація структур паралельної обробки
- •Тема №2 “Методи оцінки продуктивності паралельних алгоритмів і систем” Питання:
- •2. Фактори, що необхідно враховувати при оцінці продуктивності
- •3. Методи оцінки продуктивності паралельних систем
- •4. Характеристики продуктивності паралельних алгоритмів.
- •Масштабність (Scaleup)
- •Визначення для варіантів програми, що мають різну величину
- •5. Порівняння mimd і simd структур за продуктивністю
- •Висновки
- •2. Прості мережі Петрі
- •3. Розширені мережі Петрі
- •4. Приклади реалізації мереж Петрі
- •Тема 4: Розробка паралельного алгоритму
- •1. Паралелізм даних
- •2. Паралелізм задач
- •3. Етапи розробки паралельного алгоритму
- •1. Паралелізм даних
- •2. Паралелізм задач
- •3. Етапи розробки паралельного алгоритму
- •Тема №5: Структури зв’язку між процесорами
- •2. Шинні мережі
- •3. Мережі з комутаторами
- •4. Структури, що забезпечують зв'язок типу "пункт-пункт"
- •5. Методи комутацій
- •Питання:
- •2. Масивно - паралельні системи (mpp)
- •Симетричні мультипроцесорні системи (smp)
- •Системи з неоднорідним доступом до пам'яті (numa)
- •Паралельні векторні системи (pvp)
- •Кластерні системи
- •Тема №7: Схеми паралельних алгоритмів задач. Питання:
- •1. Схеми алгоритмів задач
- •2. Алгоритми перемноження матриці на матрицю і їх реалізація на структурах типу: кільцева, 2d (решітка), 3d (куб)
- •Схеми алгоритмів задач
- •2. Алгоритми перемноження матриці на матрицю і їх реалізація на структурах типу: кільцева, 2d (решітка), 3d (куб)
- •7. Збір результатів у с
- •2.Scatter b координати 3. Broadcast підматриць a
- •4. Broadcast 5. Обчислення підматриць b добутків (підматриць в c)
- •6. Збір результатів в c
- •2. Scatter b 3. Broadcast підматриць з а
- •4. Broadcast підматриць з у 5. Обчислення добутків підматриць у с)
- •6. Reduce (підсумовування)добутків 7. Gather c (збір результатів)
- •Тема №8: Мови паралельного програмування Питання:
- •2. Класифікація мов і систем паралельного програмування
- •3. Особливості організації паралельної програми
- •4. Технології паралельного програмування Message Passing Interface (mpi)
- •5. Операції обміну повідомленнями
- •Висновки
- •Література
- •Додатки Додаток а
- •Додаток б концепції паралельної обробки Співпрограми
- •Fork (розгалуження, виникнення паралельних процесів) I Join (об’єднання)
- •Процеси
- •Дистанційний виклик
- •Неявна паралельність
- •Проблеми асинхронної паралельності
- •Несумісні дані
- •Втрачена модифікація даних
- •Блокування
- •Балансування завантаження
- •Проблеми синхронної паралельності
- •Індексовані векторні операції
- •Відображення віртуальних процесорів на фізичні процесори
- •Зменшення пропускної спроможності під час підключення периферійної апаратури
- •Ширина частотної смуги комутаційних мереж.
- •Робота в режимі багатьох користувачів і толерантність до помилок.
- •Організація паралельних обчислень Навчальний посібник
- •Розподілені обчислення
- •[Ред.]Список проектів розподілених обрахунків
- •[Ред.]Список українських проектів розподілених обчислень
- •[Ред.]Біологія та медицина
- •[Ред.]Математика та криптографія
- •[Ред.]Природничі науки
- •[Ред.]пз для організації розподілених обчислень
- •[Ред.]Дивіться також
- •[Ред.]Ресурси інтернету
- •Паралельні та розподілені обчислення
- •[Ред.]Симетрична багатопроцесорність
- •[Ред.]Розподілені обчислення
- •[Ред.]Кластерні обчислення
- •[Ред.]Масово паралельні обчислення
- •[Ред.]Обчислення Ґрід
- •[Ред.]Спеціальні паралельні комп'ютери
- •[Ред.]Посилання
- •Основні етапи проектування паралельних та розподілених алгоритмів
- •8.1. Декомпозиція
- •8.2. Зв'язок
- •8.3. Синхронізація
Висновки
Усі без винятку дані, що характеризують продуктивність паралельних обчислювальних систем, мають розглядатися критично. Для цього є цілий ряд причин.
-
Характеристики продуктивності, як показник прискорення і показник масштабності завжди пов'язані з конкретним застосуванням паралельних систем - показники справедливі тільки для даного класу задач і дуже умовно можуть бути поширені на інші задач.
-
Показник прискорення деякої програми стосується тільки одного окремого процесора паралельної системи.
-
В SIMD- системах процесорні елементи, як правило, мають значно меншу потужність в порівнянні з MIMD-процесорами, що може дати на порядок, а то й більше, різницю в оцінках швидкості.
-
Завантаження паралельних процесорів - головна складність в MIMD-системах. У SIMD-системах це не так важливо, бо неактивні процесори не можуть бути використані іншими задачами. Незважаючи на це, показник прискорення обчислюється залежно від характеристик завантаження. Якщо SIMD-програма спробує "включити в роботу" непотрібні ПЕ, то дані завантаження, а з ними і показники прискорення, стануть недійсними. Паралельна програма в цьому випадку буде менш ефективною, ніж за результатами тестування.
-
Порівнюючи паралельну систему (наприклад, векторну) з послідовною (скалярною), не доцільно застосовувати два рази один і той же алгоритм (в паралельній і в послідовній версіях).
Приклад. OETS- алгоритм - типовий алгоритм сортування для SIMD-систем, але для послідовних процесорів найефективнішим є алгоритм Quicksort - в усякому разі Quicksort не може бути так просто переведений в ефективну паралельну програму для SIMD-систем. Порівняння “OETS- паралельного” і “OETS- послідовного” алгоритмів дає хороші результати для паралельної системи, але воно не має практичного глузду!
Вправи і завдання до теми №2
-
Паралельна програма виконується на MIMD – системі з 100 процесорами, 3% всіх команд при проході програми виконуються послідовно, а решту може виконуватись паралельно на всіх процесорах. Яке значення має показник прискорення цієї програми на даній програмі?
-
Деяка паралельна програма, що має 10% послідовну частину, має виконуватись на MIMD – системі. Чи існує деякий максимально можливий показник прискорення, незалежний від кількості процесорів системи?
-
Паралельна програма має виконуватись на MIMD – системі з 100 процесорами, проте:
-
2% всіх команд при проході програми мають виконуватися послідовно;
-
20% всіх команд можуть виконуватись тільки на 50 процесорах.
Яке значення має показник прискорення для цієї програми?
-
Паралельна програма має виконуватись на SIMD-системі, що має 10000 процесорних елементів, однак вона містить при виконанні 20% скалярних команд. Решту – векторні команди, що виконуються на всіх ПЕ. Яке значення має показник прискорення для цієї програми?
-
Паралельна програма має виконуватись на SIMD-системі, що має 10000 процесорних елементів. Якщо всі ПЕ були активними впродовж 30% загальної тривалості виконання програми, а решту часу були неактивними, яке значення має показник прискорення для цієї програми?
-
Паралельна програма має виконуватись на SIMD-системі, що має 100 000 процесорних елементів, проте:
-
20% всіх виконуваних інструкцій є скалярними командами;
-
10% всіх інструкцій можуть виконуватись векторно тільки на 100 процесорах;
-
40% всіх інструкцій можуть виконуватись векторно на 50 000 процесорах;
-
решту інструкцій можуть виконуватись векторно на всіх процесорах.
Яке значення має показник прискорення для цієї програми?
-
Чи можна для оцінки продуктивності процесора з рухомою крапкою використовувати одиницю вимірювання MIPS?
-
Чому для оцінки продуктивності паралельних систем неефективний метод обчислення продуктивності складових частин?
-
Які недоліки стосовно обчислення продуктивності має закон Амдала?
-
Як впливають параметри комунікацій на загальну продуктивність систем різного типу?
Тема №3 “Організація мереж Петрі”
Питання:
-
Поняття про мережі Петрі
-
Прості мережі Петрі
-
Розширені мережі Петрі
-
Приклади реалізації мереж Петрі
Вправи і завдання до теми №3
1. Поняття про мережі Петрі
Мережі Петрі призначені для представлення координації асинхронних подій і застосовуються для описування взаємовідносин між паралельними процесами та їх синхронізацією.
Мережа Петрі - це орієнтований, дводольний граф з мітками (марками). Це визначення треба розуміти так (рис.3.1):
Кожна мережа Петрі є графом з двома різними групами вершин: вузли та переходи. Між вузлами та переходами можуть міститися орієнтовані ребра (дуги), але два вузли або два переходи не можуть з’єднуватися ребрами. Між кожною парою вузол/перехід може існувати максимально одне ребро від вузла до переходу (ребро входу) i максимально одне ребро від переходу до вузла (ребро виходу). Вузли можуть бути вільними або зайнятими міткою (маркованими); переходи не можуть бути маркованими. Вузли, що є стартовими пунктами одного ребра до одного переходу t, називаються далі вхідними вузлами переходу t. Вузли, що є кінцевими пунктами ребра від переходу t називаються вихідними вузлами переходу t.
На рис.3.2 показано просту мережу Петрі, що має один перехід, три ребра i три вузли, два з яких марковані i один не маркований. Кожен вузол зв'язаний з переходом за допомогою одного ребра.