- •Назвіть основні етапи розвитку паралельної обробки.
- •Що було передумовою розвитку паралелізму в програмному забезпеченні?
- •Назвіть важливі причини використання паралелізму в програмному забезпеченні.
- •Які етапи можна виділити в процесі розв’язання будь-якої задачі на паралельному комп’ютері?
- •У яких галузях виникають надскладні обчислювальні завдання?
- •Назвіть способи підвищення продуктивності комп’ютерів.
- •З якими проблемами можна зіштовхнутися під час використання багатопроцесорних систем?
- •Наскільки великий розмір кеш-пам’яті багатопроцесорних машин, як вона організована? Який час доступу?
- •Як організовано сполучну мережу?
- •Визначте характеристики доступних вам багатопроцесорних машин.
- •Скільки процесорів на вашій машині, і які їх робочі частоти?
- •Який час віддаленого доступу до пам’яті або передачі повідомлення?
- •13. Дослідіть будь-який комп’ютер. Які в нього центральній процесор, пам'ять, операційна система, форма представлення чисел?
- •Як формується закон Амдаля? Який аспект паралельних обчислень дозволяє врахувати цей закон?
- •У чому можуть полягати відмінності паралельних обчислювальних систем?
- •3.Що покладено в основу класифікації Фліна?
- •У чому полягає принцип розподілу багатопроцесорних систем на мультипроцесорні й мультикомп’ютери. ?
- •Які класи систем вам відомі для мультипроцесорів?
- •У чому полягають позитивні і негативні сторони симетричних мультипроцесори.
- •Класи систем що вам відомо для мультикомп’ютерів?
- •У чому полягаю позитивні і негативні сторони кластерних систем?
- •Які топології мереж передачі даних найчастіше використовується?
- •10, У чому полягають особливості мереж передачі даних для кластерів?
- •16. Розгляньте додаткові способи класифікації комп'ютерних систем.
- •18. Назвіть сервіси базової Grid-системи.
- •У чому полягають основні способи досягнення паралелізму?
- •2. Назвіть основні форми декомпозиції.
- •3. Что означают термины: декомпозиция задачи, декомпозиция данных, декомпозиция потоков?
- •4 Поясніть значення різних декомпозицій.
- •5 До чого призведе керування одночасними діями та їх можливою взаємодією?
- •6 Назвіть паралельні шаблони програмування й зробіть стислий огляд типів проблем, до яких може бути застосований кожний зразок.
- •7 Що являє собою розсіювання помилки? з яких кроків складається дифузний алгоритм?
- •8. Опишіть найдоцільніший підхід для паралельної реалізації дифузного алгоритму. На чому ґрунтується ефективний розподіл роботи серед потоків
- •9.Назвіть різновиди паралельної обробки
- •10. До чого зводиться задача розпаралелювання програми?
- •Як визначається модель «операції - операнди»?
- •Як визначається розклад для розподілу обчисленнь між процесорами?
- •Як визначається час виконання паралельного алгоритму
- •4. Який розклад є оптимальним?
- •6. Які оцінки слід використовувати як характеристику часу послідовного розвязання задачі?
- •7. Як визначити мінімально можливий час паралельного розв’язання задачі за графом «Операнди-операції»
- •8. Які залежності можуть бути отримані для часу паралельного розв’язання задачі у разі збільшення або зменшення кількості процесорів?
- •9. За якої кількості процесорів можуть бути отримані часи використання паралельного алгоритму зіставні за порядком з оцінками мінімально можливого часу розв’язання задачі?
- •10. Як визначається поняття прискорення та ефективності?
- •11. У чому полягае суперечнисть показникив прискорення и ефективности?
- •12. Який алгоритм е маштабованим? Наведить приклади методив з ризным ривнем маштабованости.
- •14. Якими е основни етапи проектування и розробки методив паралельних обчислень?
- •15. Яки основни вимоги моють бути забезпечени пид час розробки паралельних алгоритмив?
- •Якими є основні дії на етапі визначення інформаційних залежностей?
- •У чому полягають основні дії на етапі масштабування наявного набору підзадач?
- •У чому полягають основні дії на етапі розподілу підзадач за процесорами обчислювальної системи?
- •У чому полягає проблема розпаралелювання послідовного алгоритму підсумовування числових значень?
- •У чому полягає каскадна схема підсумовування? з якою метою розглядається модифікований варіант цієї схеми?
- •У чому полягає відмінність показників прискорення й ефективності для розглядуваних варіантів каскадної схеми підсумовування?
- •У чому полягає паралельний алгоритм обчислення всіх окремих сум послідовності числових значень?
- •Розробіть модель і виконайте оцінку показників прискорення й ефективності паралельних обчислень:
- •Наведіть характеристики топології мережі передачі даних
- •Назвіть загальну характеристику механізмів передачі даних
- •3 Характеристика передачи данных от одного процессора всем другим.
- •4Характеристики топологий коммуникационной среды
- •5Циклический сдвиг.
- •7Топология двоичного дерева.
- •8Классы эффективно реализуемых задач для топологий сети
- •9 Эффективность коммуникационных систем при циклическом сдвиге и кольцевой передаче.
- •1Концепция Linda
- •2 Барьерная синхронизация в Linda
- •3 Сильный и слабые стороны Linda
- •4 Пример перемножения матриц на Linda
- •5 Функциональные возможности pvm
- •6. Какие технологии программирования поддерживает pvm?
- •7. Базовые механизмы pvm?
- •8. Как осуществляется обмен сообщениями в системе pvm?
- •9. Требования к pvm программам
- •13. Модель dvm
- •15. Мобильность dvm-программ
- •14. Основные конструкции dvm
- •16. Модели программирования и параллелизма dvm
- •17. Возможности повышения эффективности dvm-программ
- •18. В чем заключается стандарт corba?
- •19. Из каких базовых компонентов состоит corba-спецификация?
- •20. Каким образом можно создать простую распределенную программу?
- •Как реализовано mpi?
- •Какие протоколы используются для обмена сообщениями между процессами?
- •Какое назначение библиотеки mpe?
- •Какие основные функции mpe?
- •5. Какая методика оценки эффективности вычислений?
- •6. Как создается файл регистрации?
- •7. Какие процедуры выполняются во время создания лог-файлов?
- •8. Какие способы анализа лог-файлов вы знаете?
- •9. Какая разница между форматами лог-файлов alog, clog slog?
- •10. Какой минимальный набор средств является достаточным для организации параллельных вычислений в системах с разделенной памятью?
- •11. В чем важность стандартизации средств передачи сообщений?
- •12. Что следует понимать под параллельной программой?
- •13. Какой минимальный набор функций mpi позволяет начать разработку параллельных программ?
- •17 У чому відмінність парних і колективних операцій передачі даних?
- •18 У яких ситуаціях слід застосовувати бар’єрну синхронізацію ?
- •19 Які режими передачі даних підтримуються у mpi?
- •20 Як організується неблокуючий обмін даними у mpi ?
- •21 Які колективні операції передачі даних передбачено у mpi ?
- •22 У яких ситуаціях може бути корисною упакування й розпакування даних ?
- •23 Що розуміють у mpi під комунікатором ?
- •24 Для чого може потребуватися створення нових комунікаторів ?
- •25 Що розуміють у mpi під віртуальною топологією ?
- •26 Які види топологій передбачено в mpi ?
- •27 Для чого може виявитися корисним використанням віртуальних топологій ?
- •2Какие библиотеки использует OpenMp? Их назначение.
- •3.Структура предложения с использованием распараллеливая.
- •4. Что такое раздел?
- •3. Какие циклы можно распараллелить и почему?
- •7. Для чего используется раздел reduction?
- •8. Как и для чего применяется синхронизация потоков?
- •10. Назовите основные ошибки при создании параллельной программы.
- •9.Дайте характеристику анализатора Intel vTune Performance analyzer.
- •11. Выведите на экран текстовую строку с помощью разных потоков.
Які етапи можна виділити в процесі розв’язання будь-якої задачі на паралельному комп’ютері?
У процесі розв’язання будь-якої задачі на паралельному комп’ютері можна виділити такі етапи:
формулювання задачі;
вибір методу її розв’язання, декомпозиція алгоритму;
вибір технології програмування;
створення програми;
виконання її на тому чи іншому комп’ютері.
У яких галузях виникають надскладні обчислювальні завдання?
Наведемо приклади лише деяких галузей, де виникають надскладні обчислювальні завдання:
Проектування інженерних споруд, автомобілів, судів і літальних апаратів.
Обчислювальна гідродинаміка.
Прогнози погоди, клімату й глобальних змін в атмосфері.
Науки про матеріали.
Моделювання атмосфери й світового океану.
Складання напівпровідникових приладів.
Надпровідність.
Структурна біологія.
Розробка фармацевтичних препаратів.
Генетика людини.
Квантова хромодинаміка.
Задачі математичної фізики.
Астрофізика і космічні дослідження.
Транспортні завдання.
Гідро- й газодинаміка.
Керований термоядерний синтез.
Ефективність систем згоряння палива.
Розвідка нафти й газу.
Атомна енергетика й військові завдання.
Обчислювальні задачі наук про світовий океан.
Паралельні СКБД, електронна комерція й інформаційні системи.
Бортові, вбудовані, real-time системи.
Розпізнавання й синтез мови.
Розпізнавання зображень.
Назвіть способи підвищення продуктивності комп’ютерів.
Основною характеристикою сучасних комп’ютерів є продуктивність, яка має на увазі кількість виконуваних операцій за одиницю часу операцій. Часто продуктивність комп’ютерів напряму пов’язують з тактовою частотою використовуваних процесорів, тобто швидкодією електроніки, але це не завжди так. Наприклад, продуктивність одного з найперших комп’ютерів EDSAC складала лише близько 100 операцій за секунду, тоді як пікова продуктивність одного з найпотужніших на сьогодні суперкомп’ютерів – Earth Simulator оцінюється в 40 трильйонів операцій за секунду. Таким чином, продуктивність збільшилася всього приблизно в 1000 разів порівняно з першими комп’ютерами. У цілому ж, за законом Мура, продуктивність обчислювальних систем подвоюється кожні 18 місяців.
За рахунок чого відбулося таке зростання продуктивності? Справа в тому, що в сучасних суперкомп’ютерах застосовується не один, а велика кількість процесорів, які паралельно розв’язують задачу. Без перебільшення можна сказати, що вся історія розвитку високопродуктивних обчислювальних систем – це історія реалізації ідей паралельної обробки на тому чи іншому етапі розвитку комп’ютерних технологій, природно, разом зі збільшенням частоти роботи електронних схем.
З якими проблемами можна зіштовхнутися під час використання багатопроцесорних систем?
Помічено, що емоційний стан людини, яка вперше зіштовхується з суперкомп’ютером, проходить кілька стадій. Спочатку відчуває, щось на кшталт ейфорії, начитавшись рекламних даних, стосовно комп’ютера і маючи передчуття швидкого розв’язання всіх своїх обчислювальних проблем.
Після першого запуску своєї програми в нього виникає здивування, що він щось зробив не так, оскільки реально досягнута продуктивність значно відрізняється від очікуваної. Він запускає програму вдруге, але результат, якщо й змінюється на краще, то незначно. Він іде до фахівця і тут на нього чекає справжній удар. Спочатку йому кажуть, що отримані ним 5% від пікової продуктивності комп’ютера є не таким уже й поганим результатом. А потім додають, що якщо він хоче «витиснути» з такої з такої обчислювальної системи максимум, то для нього вся робота тільки починається. По-перше, слід обійти можливі конфлікти в пам’яті й спробувати збалансувати обчислювальне навантаження між процесорами. По-друге, слід поміркувати стосовно оптимального розподілу даних, допомогти компілятору розібратися зі структурою програми, замінити послідовні частини алгоритму на паралельні. І, нарешті, слід зробити ще багато чого, що, власне кажучи, не було властиве роботі прикладного програміста. При цьому всі попередні проблеми, характерні для послідовних комп’ютерів і традиційного послідовного програмування, зрозуміло, залишаються.
