
- •1. Назвати основні сфери застосування високопродуктивних систем опрацювання даних і коротко їх охарактеризувати.
- •2. Навести класифікацію обчислювальних систем згідно з м.Флінном.
- •3. Навести класифікацію обчислювальних систем згідно з р.Хокні.
- •4. Навести основні архітектури високопродуктивних систем опрацювання даних.
- •5.Архітектура мрр
- •6.Архітекттура smp
- •8. Охарактерізуваті архітектуру numa.
- •9. Охарактеризувати кластерні системи.
- •10. Охарактерізуваті архітектуру grid.
- •11.Навести переваги використання багатоядерних процесорних систем у порівнянні з багатопроцесорними системами.
- •12. Навести переваги використання спеціалізованих графічних процесорів (gpu) у порівнянні з центральними процесорами (cpu) комп'ютерних систем для високопродуктивних обчислень.
- •13.Як визначається час виконання паралельного алгоритму?
- •14. Мінімальний можливий час виконання паралельного алгоритму визначається довжиною максимального шляху обчислювальної схеми алгоритму:
- •15 Основною характеристикою алгоритму, визначальною ефективність його виконання на багатопроцесорній системі є його ступінь паралелізму.
- •16. Ефективність паралельних обчислень сильно залежить від об'єму обміну у виконуваному застосуванні і від свойст коммуникатора.
- •17.Закон Амдала
- •18.Закон Густавсона – Барсиса
- •20.Навести основні принципи, яких необхідно дотримуватись при розробці паралельних алгоритмів.
- •21. Навести та охарактеризувати основні типи апаратних комунікаційних інтерфейсів для організації високопродуктивних систем опрацювання даних.
- •22. Охарактеризувати спеціалізований комунікаційний інтерфейс sci (Scalable Coherent Interface).
- •23.Охарактеризувати спеціалізований комунікаційний інтерфейс Myrinet
- •24.Охарактеризувати комунікаційний інтерфейс Gigabit Ethernet.
- •26 Охарактеризувати принципи роботи технології виклику віддалених процедур, методів, обєктів
- •27 Дати означення терміну маршалізація даних при виклику віддалених процедур
- •28 Дати означення терміну серіалізація обєктів
- •29. Пояснити причини використання клієнтської та серверної заглушок (stub) при написанні програм виклику віддалених процедур та методів.
- •30. Навести основні проблеми, які виникають при використанні технологій виклику віддалених процедур, методів, об'єктів.
- •31. Охарактеризувати технологію rpc.
- •32.Архітектура rmi.
- •1.Rmi (англ. Remote Method Invocation) - програмний інтерфейс виклику видалених методів в мові Java.
- •35. Охарактерізуваті технологію dcom
- •36. Проаналізувати використання программ з багатьма підпроцесами для організації високопродуктивних систем опрацювання даних.
- •37.Дати означення термінам семафор, м'ютекс, критична секція.
- •38.Навести основні проблеми, які виникають при використанні програм з багатьма підпроцесами, зокрема гонка процесів, вхід/вихід з критичних секцій, синхронізація підпроцесів.
- •39.Проаналізувати використання програм зі з'єднанням на основі сокетів для організації високопродуктивних систем опрацювання даних.
- •40.Дати означення терміну сокет, мережевий сокет, unix-сокет.
- •42. Охарактеризуйте технологію mpi, її призначення і реалізації
- •43. Навести приклад найпростішої програми на мові с з використанням технології mpi, яка виводить прізвище студента
- •44 Описати процес компіляції і виконання програми засобами середовища OpenMpi та компілятора gcc.
- •45.Навести необхідні функції mpi для ініціалізації і завершення mpi-коду програми.
- •46Охарактеризувати поняття групи і комунікатора у технології mpi.
- •47Навести і охарактеризувати основні типи даних mpi.
- •48Охарактеризувати основні методи для обміну повідомленнями між окремими процесами технології mpi.
- •50. Навести і охарактеризувати віртуальні топології mpi.
- •52Директива parallel
- •53Навести конструкції технології OpenMp на мові с для паралельного виконання циклу області технології OpenMp.
- •58. Охарактеризувати технологію pvm.
- •59 Проаналізувати можливість використання технології OpenMp, mpi та mpi/openmp на архітектурах mpp, smp та кластерній
- •60 Охарактеризувати високодоступні кластери
- •61 Охарактеризувати високопродуктивні кластери
- •62. Які є базові операції rpc?
- •63.Які є етапи виконання rpc.
- •64.Навести основні етапи розробки паралельних алгоритмів.
- •65.Завдання множення матриці на вектор визначається співвідношеннями
- •66.Навести і описати паралельні методи множення матриць.
- •67. Навести і описати паралельні методи розв'язку систем лінійних рівнянь.
- •67. Навести і описати паралельні методи сортування.
- •69.Навести і описати паралельні методи опрацювання графів.
- •70.Навести і описати паралельні методи розв'язання диференціальних рівнянь у частинних похідних.
- •71.Навести і описати паралельні методи багатоекстремальної оптимізації
- •72. У вихідному коді програми на мові с вставити пропущені виклики процедур підключення мрі, визначення кількості процесів і рангу процесів.
- •73. Програма, яка виводить «Hello Word from process I for n».
- •74. Програма генерації чисел в одному процесі і сумування їх у іншому процесі і надсилення результату в перший процес.
- •85.Налаштувати обчислювальний кластер засобами OpenMosix і пояснити принципи його роботи
- •88.Пояснити що таке mfs і продемонструвати прозору взаємодію файлових систем кластера
- •89. Написати програму з використанням бібліотеки Posix threads на мові с з метою тестування роботи кластера під керуванням OpenMosix. Тестування провести з замірами часу.
17.Закон Амдала
Практично в будь-якій програмі є деякий відсоток операцій, що не допускають паралельного виконання. Позначимо його через α. Очевидно, відсоток операцій, що допускають паралельне виконання, дорівнює 1-α. Максимальний приріст продуктивності, який можна одержати від паралельного виконання програми з такими характеристиками на машині з N процесорами в порівнянні з однопроцесорної ЕОМ, виражається законом Амдала:
Випадок α=0 відповідає повністю паралельній програмі й ми одержуємо N-кратний приріст, випадок α=1 – повністю послідовної, і в цьому випадку приросту немає. Закон Амдала деякою мірою допомагає відчути складність паралельного програмування: наприклад, для прискорення виконання програми в 100 разів, необхідно, щоб 99,99% операцій в програмі можливо було б виконувати з 100-кратним розпаралеленням.
Устремління числа процесорів N у нескінченність приводить до очевидного результату: S(∞,α) = 1/α, тобто принципово неможливо одержати прискорення більше 1/α при будь-якій кількості використовуваних процесорів.
18.Закон Густавсона – Барсиса
Оцінимо максимально досяжне прискорення виходячи з наявної частки послідовних розрахунків у виконуваних паралельних обчисленнях:
де (n) і (n) є часи послідовної і паралельної частин виконуваних обчислень відповідно, тобто
З урахуванням введеної величини g можна отримати
що дозволяє побудувати оцінку для прискорення
Спрощення останньої оцінки для прискорення
Оцінку прискорення, що отримується відповідно до закону Густавсона-барсиса, ще називають прискоренням масштабування (scaled speedup), оскільки дана характеристика може показати, наскільки ефективно можуть бути організовані паралельні обчислення при збільшенні складності вирішуваних завдань
19 Паралельний алгоритм називають масштабованим (scalable), якщо при зростанні числа процесорів він забезпечує збільшення прискорення при збереженні постійного рівня ефективності використання процесорів
Якщо складність вирішуваного завдання є фіксованою (T1=const), то при зростанні числа процесорів ефективність, як правило, убуватиме за рахунок зростання накладних витрат T0
При фіксації числа процесорів ефективність використання процесорів можна поліпшити шляхом підвищення складності вирішуваного завдання T1
При збільшенні числа процесорів в більшості випадків можна забезпечити певний рівень ефективності за допомогою відповідного підвищення складності вирішуваних завдань.
20.Навести основні принципи, яких необхідно дотримуватись при розробці паралельних алгоритмів.
Розробка алгоритмів (а особливо методів паралельних обчислень) для вирішення складних науково-технічних завдань часто є значною проблемою. Для зниження складності даної теми залишимо осторонь математичні аспекти розробки та докази збіжності алгоритмів - ці питання тією чи іншою мірою вивчаються в ряді "класичних" математичних навчальних курсів. Тут же ми будемо вважати, що обчислювальні схеми вирішення завдань, що розглядаються далі в якості прикладів, вже відомі урахуванням висловлених припущень наступні дії для визначення ефективних способів організації паралельних обчислень можуть полягати в наступному:
виконати аналіз наявних обчислювальних схем та здійснити їх поділ (декомпозицію) на частини (підзадачі), які можуть бути реалізовані в значній мірі незалежно один від одного;
виділити для сформованого набору підзадач інформаційні взаємодії, які повинні здійснюватися в ході розв'язання вихідної поставленого завдання;
визначити необхідну (або доступну) для вирішення завдання обчислювальну систему і виконати розподіл має набору підзадач між процесорами системи.