
- •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. Тестування провести з замірами часу.
67. Навести і описати паралельні методи розв'язку систем лінійних рівнянь.
Лінійне
рівняння з n невідомими
Безліч n лінійних рівнянь називається системою лінійних рівнянь або лінійною системою
В матричной форме:
Під задачею рішення системи лінійних рівнянь для заданих матриці А і вектора b розуміється знаходження значення вектора невідомих x, при якому виконуються всі рівняння системи.
Метод Гауса - паралельний алгоритм
Масштабування і розподіл підзадач по процесорах
Основним видом інформаційної взаємодії підзадач є операція передачі даних від одного процесора всім процесорам обчислювальної системи
Як результат, для ефективної реалізації необхідних інформаційних взаємодій між базовими підзадачами, топологія мережі передачі даних повинні мати структуру гиперкуба або повного графа.
Метод зв'язаних градієнтів
Метод зв'язаних градієнтів може бути застосований для вирішення системи лінійних рівнянь з симетричною, позитивно визначеною матрицею
Матриця А є симетричною, якщо вона співпадає з своєю транспонованою матрицею
тобто А=АТ
Матриця А називається позитивно визначеною, якщо для будь-якого вектора x справедливе: xTAx>0.
Після виконання n ітерацій методу зв'язаних градієнтів (n є порядок вирішуваної системи лінійних рівнянь), чергове наближення xn співпадає з точним рішенням.
67. Навести і описати паралельні методи сортування.
Сортування
є однією з типових проблем обробки даних
і звичайно розуміється як задача
розміщення елементів неврегульованого
набору значень
впорядку монотонного зростання або
убування
Бульбашкове сортування:
послідовний алгоритм
// Последовательный алгоритм пузырьковой copтировки
BubbleSort(продублируйте A[], int n){
для (i=0; i<n-1; i++)
для (j=0; j<n-i; j++)
compare_exchange(,[j+1]);
Трудомісткість обчислень має порядок о(n2)
В прямому вигляді складний для розпаралелювання
Бульбашкове сортування: алгоритм чет-нечетной перестановки
Вводяться два різні правила виконання ітерацій методу:
на всіх непарних ітераціях порівнюються пари (a1, a2), (a3, a4) ..., (an-1,an) (при парному n)
на парних ітераціях обробляються елементи (a2, a3), (a4, a5) ... (an-2,an-1).
Сортування Шелла: паралельний алгоритм
Хай топологія комунікаційної мережі має вид N-мерного гиперкуба (тобто кількість процесорів рівна p=2N).
Дії алгоритму полягають в наступному:
Перший етап (N ітерацій): виконання операції "порівняти і розділити" для кожної пари процесорів в гиперкубе. Формування пар процесорів відбувається за правилом - на кожній ітерації i, 0 Ј i < N, парними стають процесори, у яких відмінність в бітових представленні їх номерів є тільки у позиції N-i
Другий етап: реалізація звичайних ітерацій паралельного алгоритму чет-нечетной перестановки. Ітерації виконуються до припинення фактичної зміни сортованого набору. Загальна їх кількість L може бути різною - від 2 до p.
Швидке сортування
послідовний алгоритм.
Алгоритм швидкого сортування, запропонованої Хоаром (Hoare C.A.R.), грунтується на послідовному розділенні сортованого набору даних на блоки меншого розміру таким чином, що між значеннями різних блоків забезпечується відношення впорядкованості (для будь-якої пари блоків всі значення одного з цих блоків не перевищують значень іншого блоку):
На першій ітерації методу здійснюється розподіл початкового набору даних на перші дві частини - для організації такого розподілу вибирається деякий ведучий елемент і всі значення набору, менші провідного елемента, переносяться в перший формований блок, вся решта значень утворює другий блок набору
На другій ітерації сортування описані правила застосовуються рекурсивно для обох сформованих блоків і т.д.
При оптимальному виборі провідних елементів після виконання log2n ітерацій початковий масив даних виявляється впорядкованим
Сортування з використанням регулярного набору зразків: паралельний алгоритм.
Перший етап: впорядковування блоків кожним процесором незалежне один від одного за допомогою звичайного алгоритму швидкого сортування; далі кожний процесор формує набір з елементів своїх блоків з індексами
0, m, 2m.,(p-1) m, де m=n/p2
Другий
етап: всі сформовані на процесорах
набори даних збираються на одному з
процесорів системи і об'єднуються в
ході послідовного зливання в одну
впорядковану множину; з одержаної
безлічі значень з елементів з індексами
формується набір провідних елементів, який передається всім процесорам;
на завершення етапу кожний процесор виконує розділення свого блоку на p частин з використанням одержаного набору провідних значень
Третій етап: кожний процесор розсилає виділені раніше частини свого блоку всій решті процесорів системи відповідно до порядку нумерації - частина j, 0Ј j<p, кожного блоку пересилається процесору з номером j
Четвертий етап: кожний процесор виконує злиття p одержаних частин в один відсортований блок.
Розглянуті способи паралельного виконання трьох широко відомих методу впорядкування даних:
Алгоритм бульбашкового сортування
Сортування Шелла
Швидке сортування
Для алгоритму швидкого сортування приведено дві додаткові модифікації:
Узагальнене швидке сортування
Сортування з використанням регулярного набору зразків
Представлена програмна реалізація методу узагальненого швидкого сортування
Використаний порядок викладу паралельних методів сортування можна розглядати як приклад процесу послідовного вдосконалення паралельних обчислень з метою поліпшення показників прискорення і ефективності