- •1. Назвати основні сфери застосування високопродуктивних систем опрацювання даних і коротко їх охарактеризувати.
- •2. Навести класифікацію обчислювальних систем згідно з м.Флінном.
- •3. Навести основні архітектури високопродуктивних систем опрацювання даних.
- •4.Архітектура мрр
- •5.Архітекттура smp
- •7. Охарактерізуваті архітектуру numa.
- •8. Охарактеризувати кластерні системи.
- •9. Охарактерізуваті архітектуру grid.
- •10.Навести переваги використання багатоядерних процесорних систем у порівнянні з багатопроцесорними системами.
- •11. Навести переваги використання спеціалізованих графічних процесорів (gpu) у порівнянні з центральними процесорами (cpu) комп'ютерних систем для високопродуктивних обчислень.
- •12.Як визначається час виконання паралельного алгоритму?
- •13. Мінімальний можливий час виконання паралельного алгоритму визначається довжиною максимального шляху обчислювальної схеми алгоритму:
- •14. Основною характеристикою алгоритму, визначальною ефективність його виконання на багатопроцесорній системі є його ступінь паралелізму.
- •16.Закон Амдала
- •17.Закон Густавсона – Барсиса
- •20. Навести та охарактеризувати основні типи апаратних комунікаційних інтерфейсів для організації високопродуктивних систем опрацювання даних.
- •22.Охарактеризувати спеціалізований комунікаційний інтерфейс Myrinet
- •23.Охарактеризувати комунікаційний інтерфейс Gigabit Ethernet.
- •25 Охарактеризувати принципи роботи технології виклику віддалених процедур, методів, обєктів
- •26 Дати означення терміну маршалізація даних при виклику віддалених процедур
- •27 Дати означення терміну серіалізація обєктів
- •28. Пояснити причини використання клієнтської та серверної заглушок (stub) при написанні програм виклику віддалених процедур та методів.
- •29. Навести основні проблеми, які виникають при використанні технологій виклику віддалених процедур, методів, об'єктів.
- •30. Охарактеризувати технологію rpc.
- •31.Архітектура rmi.
- •1.Rmi (англ. Remote Method Invocation) - програмний інтерфейс виклику видалених методів в мові Java.
- •34. Охарактерізуваті технологію dcom
- •35. Проаналізувати використання программ з багатьма підпроцесами для організації високопродуктивних систем опрацювання даних.
- •36.Дати означення термінам семафор, м'ютекс, критична секція.
- •37.Навести основні проблеми, які виникають при використанні програм з багатьма підпроцесами, зокрема гонка процесів, вхід/вихід з критичних секцій, синхронізація підпроцесів.
- •38.Проаналізувати використання програм зі з'єднанням на основі сокетів для організації високопродуктивних систем опрацювання даних.
- •39.Дати означення терміну сокет, мережевий сокет, unix-сокет.
- •42. Навести приклад найпростішої програми на мові с з використанням технології mpi, яка виводить прізвище студента
- •43 Описати процес компіляції і виконання програми засобами середовища OpenMpi та компілятора gcc.
- •51Директива parallel
- •57. Охарактеризувати технологію pvm.
- •58 Проаналізувати можливість використання технології OpenMp, mpi та mpi/openmp на архітектурах mpp, smp та кластерній
- •59 Охарактеризувати високодоступні кластери
- •60 Охарактеризувати високопродуктивні кластери
- •61. Які є базові операції rpc?
- •62.Які є етапи виконання rpc.
- •63.Навести основні етапи розробки паралельних алгоритмів.
- •65.Навести і описати паралельні методи множення матриць.
- •66. Навести і описати паралельні методи розв'язку систем лінійних рівнянь.
- •67. Навести і описати паралельні методи сортування.
- •69.Навести і описати паралельні методи розв'язання диференціальних рівнянь у частинних похідних.
- •71. У вихідному коді програми на мові с вставити пропущені виклики процедур підключення мрі, визначення кількості процесів і рангу процесів.
- •72. Програма, яка виводить «Hello Word from process I for n».
- •73. Програма генерації чисел в одному процесі і сумування їх у іншому процесі і надсилення результату в перший процес.
- •88. Написати програму з використанням бібліотеки Posix threads на мові с з метою тестування роботи кластера під керуванням OpenMosix. Тестування провести з замірами часу.
10.Навести переваги використання багатоядерних процесорних систем у порівнянні з багатопроцесорними системами.
В порівнянні з традиційними однопроцесорними чіпами багатоядерні процесори забезпечують значно велику обчислювальну потужність завдяки паралельній обробці, роблять систему компактніше, а також працюють на менших тактових частотах, що знижує тепловиділення і енергоспоживання системи.
Ефективне використання багатоядерної технології значно підвищить продуктивність і масштабованість мережевого устаткування, систем управління, відеоігрових платформ і різних інших вбудовуваних додатків.
Як приклад розглянемо завдання управління загальнодоступними ресурсами в багатоядерному чіпі. Як правило, ядра мають роздільну кеш-пам'ять першого рівня, але спільно використовують кеш-пам'ять другого рівня, підсистеми управління пам'яттю і перериваннями, а також периферійні пристрої. Це означає, що системотехніка повинна забезпечити кожному ядру винятковий доступ до певних ресурсів і гарантувати, що додатки, які працюють на одному ядрі, не мають доступу до ресурсів, які виділені іншому ядру.
Наявність декількох ядер також ускладнює архітектуру системи.
Існує три основні типи багатопроцесорної обробки:
асиметрична багатопроцесорність — на кожному процесорному ядрі працює окрема ОС або окремі копії однієї і тієї ж ОС;
симетрична багатопроцесорність — всі процесорні ядра одночасно управляються єдиною копією ОС, а додатки можуть переміщатися між ядрами;
виняткова багатопроцесорність — всі процесорні ядра одночасно управляються єдиною копією ОС, але кожен додаток прив'язаний до конкретного ядра.
Темпи зменшення латентності пам'яті набагато нижчі за темпи прискорення процесорів + прогрес в технології виготовлення кристалів => CMT (Chip MultiThreading)
Випереджаюче зростання споживання енергії при зростанні тактової частоти + прогрес в технології виготовлення кристалів => CMP (Chip MultiProcessing, багатоядерність)
І те і інше вимагає глибшого розпаралелювання для ефективного використання
11. Навести переваги використання спеціалізованих графічних процесорів (gpu) у порівнянні з центральними процесорами (cpu) комп'ютерних систем для високопродуктивних обчислень.
GPU призначені для виконання інтенсивних розрахунків. Завдання з інтенсивним зверненням до пам'яті або складною логікою виконуватимуться неефективно, оскільки GPU володіє слабкими засобами кешування звернення до пам'яті (до того ж їх потрібно настроювати вручну) і "не переносить" розгалужень в програмі, особливо якщо потоки одного блоку розходяться по різних вітках.
Модель CUDA припускає, що програміст на початку розбиває завдання на незалежні частини (блоки), які можуть виконуватися паралельно. Потім кожен блок розбивається на безліч потоків (thread), що паралельно виконуються, які можуть залежати один від одного. CUDA забезпечує засоби розширення мови C для паралельного запуску безлічі потоків, що виконують одну і ту ж функцію (ядро, kernel).. Потоки об'єднуються в блоки, блоки об'єднуються в сітки. Потоки усередині блоку запускаються на одному мультипроцесорі (MP), мають загальну пам'ять, що розділяється, і можуть синхронізувати хід виконання завдання. Кожен потік має унікальний ідентифікатор усередині блоку, що виражається за допомогою одновимірного, двовимірного або тривимірного індексу.