Смекни!
smekni.com

Паралельноє програмирование (стр. 8 из 10)

4.2 Задача

Реалізація cуми двох добутків матриці на матрицю у чотирьох процесорній системі із спільною пам’яттю (рис. 4.3) з використання захищеного модуля мови Ада.

Вхідні дані:

· комп’ютерна система зі спільною пам’яттю, яка включає чотири процесори і чотири пристрої введення-виведення (рис. 2.1);

· математичне завдання: реалізації множення матриці на матрицю і вектора на матрицю

;

де MА, МB, МC,MO,MK – матриці розмірності N.

· введення вектора MВ виконується в процесорі Т2, введення матриці МС виконується в процесорі Т1, введення матриці МO виконується в процесорі Т3, введення матриці МK виконується в процесорі Т4, виведення результату – матриці МА – у процесі Т3.

Етап 1. Побудова паралельного алгоритму. Паралельний алгоритм можна подати у вигляді

(4.3)

де

- Н елементів матриці MA.

Співвідношення (4.3) визначає дії у кожному процесорі системи під час виконання обчислень.

Спільним ресурсом у рівнянні (4.3) є MC і MK.

Етап2. Розроблення алгоритмів роботи кожного процесу.

Цей етап включає розроблення детального алгоритму роботи кожного процесу. Такий алгоритм має включати всі дії процесу, які, крім безпосередніх обчислень за формулою (4.3), будуть включати введення даних і виведення результату, а також дії, що пов’язані з організацією взаємодії процесів (розв’язування задач взаємного виключення та синхронізації).

Т1 Т2 Т3 Т4
1.Ввід MB. 1.Введення МB. 1. Введення МO. 1. Введення МK.
2.Сигнал T1-T4про закінчення введення. 2.Сигнал T1-T4про закінчення введення. 2.Сигнал T1-T4про закінчення введення. 2. Сигнал T1-T4про закінчення введення.
3.Чекати сигнал від Т1-T4. 3.Чекати сигнал від Т1-T4. 3.Чекати сигнал від Т1-T4. 3.Чекати сигнал від Т1-T4.
4. Копія
=
.
4. Копія
=
.
4. Копія
=
.
4. Копія
=
.
5.Обчислення
5.Обчислення
5.Обчислення
5.Обчислення
6.Чекати сигнал від Т1-T4 про завершення обчислення. 6. Чекати сигнал від Т1-T4 про завершення обчислення. 6. Чекати сигнал від Т1-T4 про завершення обчислення. 6. Чекати сигнал від Т1-T4 про завершення обчислення.
7.Виведення MА.

Табл. 4.3 Структурна таблиця розроблення алгоритмів роботи кожного процесу.

Етап 3. Розробка структурної схеми взаємодії задач. Цей етап пов'язаний із розробкою структури захищеного модуля, за допомогою якого реалізується взаємодія задач. Захищений модуль Керування (рис 2.2) включає чотири захищені елементи: МС,MK,F1, F2, а також набір захищених операцій:

· вхід Чекати 1 для синхронізації з введенням в задачах Т1-T4;

· вхід Чекати 2 для синхронізації після завершення обчислень у задачахТ1-T4;

· функцію Копія МС для копіювання спільного ресурсу МС;

· функцію Копія МK для копіювання спільного ресурсу МС;

· процедуру Ввід МС для запису значення МС у захищений модуль;

· процедуру Ввід МK для запису значення МK у захищений модуль;

· процедуру Сигнал 1 для сигналу про завершення обчислень у задачі Т1, Т2, Т3,T4;

· процедуру Сигнал 2 для сигналу про завершення введення даних у задачах Т1, Т2, Т3,T4;

Захищені змінні F1 F2 використовуються в бар’єрах входів Чекати 1 і Чекати 2.

Схема захищеного модуля представлена в Додатку Д

Етап 4. Лістинг програми

Лістинг програми представлено в Додатку Е

4.4 Тестування програм

Для визначення ефективності розроблених програм було проведено дослідження, де визначався час виконання програми паралельної обчислюваної системи. Для цього було визначено час виконання програми у паралельно обчислюваній системі із двома ядрами, а потім у паралельно обчислюваній системі, де одне ядро було відключено через диспетчер задач. Це було зроблено для кількох значень N- розміру матриць. N ,було рівне 100, 200, 400, 600, 800, 1000.

Результати часу в сек.

,
,
представлені в таблицях 4.4, 4.5, 4.6
1 - ядро 2 - ядра 4 - ядра
100 3 2 1
200 10 6 3
400 43 25 13
600 97 55 30
800 177 100 58
1000 288 166 110

Табл. 4.4 Тестування

Графік відношення часу до кількості елементів

Рис. 4.4 Графік відношення часу

1 - ядро 2 - ядра 4 - ядра
100 7 4 1
200 23 12 6
400 160 98 56
600 227 129 89
800 396 207 156
1000 653 326 250

Табл. 4.5 Тестування

Графік відношення часу до кількості елементів

Рис. 4.5 Графік відношення часу

1 - ядро 2 - ядра 4 - ядра
100 5 4 2
200 20 11 8
400 76 43 30
600 189 95 67
800 341 173 117
1000 523 268 177

Табл. 4.5 Тестування

Графік відношення часу до кількості елементів

Рис. 4.5 Графік відношення часу

ВИСНОВКИ

Перехід до багатоядерних процесорів може дати помітний поштовх розвитку індустрії віртуалізації. Віртуалізація ресурсів процесорів дозволить здійснювати паралельну обробку різних застосувань і потоків даних |. Розділення|поділ| ресурсів (ядра і потоки) і їх динамічний перерозподіл для різних завдань|задач| і ІВМ за допомогою мікропрограмних засобів|коштів| роблять|чинять| віртуалізацію набагато надійнішою і ефективнішою. Багатоядерність, багатопоточність, віртуалізація і енергозбереження стають ключовими|джерельними| напрямами|направленнями| розвитку процесорній індустрії.

Метою бакалаврської роботи було розробити Програмно-апаратний комплекс на основі Амд-процесорів. В перших двох розділах описано AMD-багатоядерні процесори і засоби мов С# і ADA для програмування паралельних потоків.

У третьомурозділу розглядаєся апартна частина комплексу, визначено його складові і їхній кошторис

Метою четвертого розділу було визначення ефективності програми. Для визначення ефективності розробленої програми було проведено дослідження, де визначалося час виконання паралельної програми обчислюваної системи.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Жуков І.А., Корочкин О.В. Паралельні та розподілені обчислення. Навч. Посіб – К.: Корнійчук, 2005. – 226 с.

2. Корочкин А. В. Ада95: Введение в программирование- К.:
Свит, 1999.-260 с.

3. Корочкин А., Мустафа Акрам Параллеьные вычисления: Ада и Java. - Вісн. НТУУ "КГП", Інформап ка, управління та обчис­лювальна техніка, 1999, К.: - № 32, С 3-17.