
- •1. Загальні вимоги
- •2. Завдання на курсове проектування
- •3. Вимоги до оформлення курсової роботи
- •4. Приклад виконання розділів курсового проекту
- •4.1 Опис методу рішення поставленої задачі та розробка алгоритму паралельної програми
- •4.2. Розробка та опис паралельної програми для реалізації поставленої задачі
- •4.3 Результати виконання програми
- •4.4. Висновки
- •Література Основна:
- •Додаткова:
3. Вимоги до оформлення курсової роботи
ПЗ до роботи оформляється на білому папері формату А4 (210297 мм). ПЗ повинна бути набраною та родрукованою на ПК (шрифт Times New Roman, розмір 14, інтервал 1,5). Записка повинна бути переплетена. На обкладинці небілого кольору наклеюється етикетка з білого паперу розміром 12080 мм, на якій пишеться “КУРСОВА РОБОТА”, вказується шифр роботи, групу, ім’я та прізвище автора, рік [1]. Шифр роботи утворюється таким чином:
КР.КС-ХХ.00.000 ПЗ,
де замість “ХХ” підставляються дві останні цифри з номеру залікової книжки студента.
Всі розділи крім вступу нумеруються згідно вимог ЄСКД – арабськими цифрами, крапки в кінці заголовків не ставляться. Формули в записці нумеруються арабськими цифрами в круглих дужках на одній горизонталі з ними по правому краю рядка. При цьому слід використовувати нумерацію в межах розділу. Посилання на літературу подається в квадратних дужках по тексту. Перелік посилань на джерела може складатись як в алфавітному порядку, так і по мірі посилань на джерела. При посиланні на бібліографічне джерело у тексті вказується його порядковий номер у переліку. Номери сторінок не вказуються. На кожне джерело, приведене в переліку, повинне бути щонайменше одне посилання в тексті ПЗ.
Значення фізичних величин повинні подаватися в системі SІ.
Ілюстрації до ПЗ – схеми, діаграми, графіки і т.п. – слід виконувати чорним кольором на листах формату А4. Кожен рисунок (схема, графік тощо) разом з підписом до нього може розміщуватись на окремому аркуші або в тексті ПЗ. Допускається розміщення на одному аркуші двох рисунків з послідовною нумерацією. На всі ілюстрації повинні бути посилання в тексті. Пояснювальні дані (якщо потрібно) розміщуються під рисунком, нижче розміщуються номер рисунку та його назва.
Рівняння та формули слід виділяти із тексту окремими рядками, при чому віддаль від формули до тексту повинна бути рівною ширині одного рядку. Нижче формули через слово “де” даються пояснення величин, що до неї входять.
Числові значення величин та ціни на обладнання чи програмні продукти, що вибираються для використання у розрахунках, повинні прийматися з необхідним обґрунтуванням.
Ілюстративна частина КР оформляється відповідно до діючих стандартів та системи ЄСКД, з врахуванням вимог ГОСТ та ДСТУ.
4. Приклад виконання розділів курсового проекту
В якості прикладу наведемо три розділи та висновки до виконання наступного завдання:
1. Спроектувати кластерну ситему, яка містить 8 процесорів, зв’язаних мережею по топології хордальне кільце з кроком 4.
2. Реалізувати засобами МРІ задачу паралельного розв’язку систем лінійних алгебраїчних рівнянь методом Якобі масиву даних методом парно-непарної перестановки використовуючи віртуальну топологію "зірка", яка складається із 4 вузлів. Початкові дані до задачі:
4.1 Опис методу рішення поставленої задачі та розробка алгоритму паралельної програми
Системи лінійних рівнянь виникають при розв’язку ряду прикладних задач, що описуються диференціальними, інтегральними або системами нелінійних (трансцендентних) рівнянь. Вони можуть з'являтися також в задачах математичного програмування, статистичної обробки даних, апроксимації функцій, при дискретизації краєвих диференціальних завдань методом кінцевих різниць або методом кінцевих елементів і ін.
Матриці коефіцієнтів систем лінійних рівнянь можуть мати різну структуру і властивості. Матриці розв’язуваних систем можуть бути великої розмірності, і їх порядок може досягати декількох тисяч рядків і стовпців. При рішенні багатьох задач можуть з'являтися системи, що володіють симетричними позитивно визначеними стрічковими матрицями з порядком в десятки тисяч і шириною стрічки в декілька тисяч елементів. І, нарешті, при розгляді великого ряду завдань можуть виникати системи лінійних рівнянь з розрідженими матрицями з порядком в мільйони рядків і стовпців. Чисельні методи рішення подібних задач вимагають значних затрат часу і ресурсів, а тому їх реалізація за допомогою паралельних багатопроцесорних комп’ютерних систем є актуальною
Лінійне рівняння з n невідомими x0, x1 …. xn-1 може бути визначене за допомогою виразу:
де величини a0,a1...,an-1 і b є постійними значеннями.
Множина з n лінійних рівнянь
називається системою лінійних рівнянь або лінійною системою. У коротшому (матричному) вигляді система може представлена так:
Ax = b,
де
A=(ai,j)
є дійсна матриця розміру
,
а вектори b
і
x
складаються
з n
елементів.
Під задачею розв’язку системи лінійних рівнянь для заданих матриці А і вектора b зазвичай розуміється знаходження значення вектора невідомих x, при якому виконуються всі рівняння системи.
При реалізації числових методів розв’язку систем таких рівнянь найчастіше використовуються ітераційні методи .
Метод простої ітерації Якобі – один із ітераційних методів. Хоча метод Якобі не є оптимальним для більшості завдань, він є зручним для розпаралелення.
Нехай А – невироджена матриця і потрібно розв’язати систему:
,
де діагональні елементи матриці А ненульові. Тоді метод Якобі має вигляд
де верхні
індекси вказують номер ітерації і
передбачається, як і для всіх ітераційних
методів, що
є
заданою апроксимацією розв’язку
системи.
Для
багатьох цілей зручно переписати (4.1) в
матричній формі. Нехай
-
діагональна матриця, утворена діагональними
елементами А, і нехай
,
тобто
є розкладанням матриці на діагональну
і недіагональну частини. Тоді ми можемо
записати (3.1) у вигляді:
З (4.2) видно, що всі значення можна обчислювати паралельно; саме з цієї причини метод Якобі (простої ітерації) іноді розглядається як прототип паралельного методу.
Розглянемо питання, пов'язані з паралельними обчислювальними системами.
Припустимо,
що паралельна система утворена мережею
з p
процесорів,
впорядкованих від 0 до p-1
і кожен процесор зв'язаний зі всіма
процесорами. Припустимо, що
.
Тоді природно доручити кожному процесору
обробку m
невідомих. Це можна зробити багатьма
способами. Один з простих – розподілити
перші m
невідомих на нульовий процесор, наступні
m
невідомих на перший і т.д.
В цьому
випадку обчислення на кожному процесорі
виконуватимуться таким чином: обчислюється
m
невідомих
в процесорі pi;
посилається значення
решті процесорів.
Таким чином, на кожному етапі обчислювальний крок, що реалізовується по формулах (4.2), супроводжується подальшою передачею оновлених значень ітераційного наближення всім процесорам, їм ці значення буде потрібно для виконання наступної ітерації. Таке впорядкування демонструє ідеальний паралелізм методу Якобі.
Для
того, що забезпечити коректне виконання
ітерацій Якобі, в запропоновану
обчислювальну схему необхідно ввести
механізм синхронізації. Наприклад,
обчислення наступних
не може бути почато до тих пір, поки не
будуть отримані змінні
від решти процесорів. Проте це не
обов'язково завдасть збитку ітераційному
процесу в цілому, і в деяких випадках з
погляду загальних витрат може виявитися
вигідним застосовувати ітераційні
методи в асинхронному варіанті.
При розпаралелюванні алгоритму робиться допущення, що розмірність системи (N) більше числа процесорів (Р), тобто N>P (де N-розмірність системи рівнянь, Р - число процесорів), Природний підхід для розпаралелювання методу Якобі - це примусити кожен процесор обчислювати підвектор вектора Х=(x1,x2,x3...,xn). Дані по процесорах, а саме матриця А, розмір матриці N, вектор b, похибка eps, що визначає умову зупинки обчислень, максимально допустиме число ітерацій max_iter, вектор х, розподілятимуться таким чином: розсилаються копії скалярних величин на кожен процесор. В даному випадку це N, b, eps і max_iter. Таким чином, після того, як 0-й процесор прочитає ці величини, йому необхідно їх розіслати решті всіх процесорів. Вектор х розсилатиметься по частинах, тобто на кожен процесор буде посланий певний підвектор вектора х (див. таблицю 4.1).
Табл. 4.1
-
Процесор
Підвектор
0
x(0),..,x(m-1)
1
x(m),...,x(2m-1)
...
...
q
x(q*m),...,x((q+1)m-1)
...
...
p-1
x((p-1)*m),...,x(N-1)
Після цього на кожному процесорі, після отримання необхідної інформації, будуть проведені обчислення за формулою, описаною в постановці завдання. Після закінчення кожної ітерації Процесори обмінюються обчисленою інформацією, при цьому на кожному з них збирається цілий вектор х. Умовою зупинки ітерацій є досягнення необхідної точності eps або перевищення максимального числа ітерацій max_iter.
На основі описаного методу було розроблено алгоритм, який представлений блок-схемою, що наведена в додатку 2.
Наведемо теоретичні оцінки ефективності методу:
Час виконання на одному процесорі:
,
Час виконання на p процесорах:
де k-кількість ітерацій, а f(n) - час, витрачений на пересилку даних між процесорами.
Прискорення:
(4.3)
Ефективність: