Реалізація 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. Лістинг програми
Лістинг програми представлено в Додатку Е
Для визначення ефективності розроблених програм було проведено дослідження, де визначався час виконання програми паралельної обчислюваної системи. Для цього було визначено час виконання програми у паралельно обчислюваній системі із двома ядрами, а потім у паралельно обчислюваній системі, де одне ядро було відключено через диспетчер задач. Це було зроблено для кількох значень N- розміру матриць. N ,було рівне 100, 200, 400, 600, 800, 1000.
Результати часу в сек.
, , представлені в таблицях 4.4, 4.5, 4.61 - ядро | 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.