Використання функціональної декомпозиції для розв’язку обчислювальних задач

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Паралельні та розподілені обчислення

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 2 з дисципліни: “Паралельні та розподілені обчислення” на тему: “Використання функціональної декомпозиції для розв’язку обчислювальних задач” Мета лабораторної роботи Вивчити методи декомпозицій задач. Набути навиків розв’язування задач з використанням функціональної декомпозиції. Теоретичні відомості Найважливішим та найважчим етапом при створенні програми є розробка алгоритму, особливо, якщо мова йде про паралельний алгоритм. Процес створення паралельного алгоритму можна розбити на чотири кроки. 1. Декомпозиція. На цьому етапі вихідна задача аналізується, оцінюється можливість її розпаралелювання. Іноді виграш від розпаралелення може бути незначним, а трудоємкість розробки паралельної програми велика. В цьому випадку перший крок розробки алгоритму виявляється і останнім. Якщо ж ситуація відмінна від описаної, то задача та пов’язані з нею дані розділяються на дрібніші частини – підзадачі і фрагменти структур даних. Особливості архітектури конкретної обчислювальної системи на цьому етапі можуть не враховуватися. 2. Проектування комунікацій(обміну даними) між задачами. На цьому етапі визначаються зв’язки, необхідні для пересилання вхідних даних, проміжних результатів виконання підзадач, а також комунікації, що необхідні для керування роботою під задач. Обираються методи та алгоритми комунікацій. 3.Укрупнення. Підзадачі можуть об’єднуватися у більші блоки, якщо це дозволяє підвищити ефективність алгоритму і знизити трудоємкість розробки. Основними критеріями на даному кроці є ефективність алгоритму (в першу чергупродуктивність) та трудоємкість його реалізації. 4. Планування обчислень. На цьому кроці виконується розподіл під задач між процесорами. Основний критерій вибору способу розміщення під задач – ефективне використання процесорів з мінімальними затратами часу на обмін даними. Завдання Використовуючи метод функціональної декомпозиції, розробити алгоритм обчислення запропонованого матрично-векторного виразу, який би враховував можливість паралельного виконання і був оптимальним з точки зору часових затрат. На основі створеного алгоритму написати програму яка дозволяє обчислити вираз та ілюструє проведену декомпозицію. Правила знаходження елементів виразу. 1).Задати* квадратну матрицю А порядку n. Отримати вектор(стовпець) y1 = Ab, де b – вектор-стовпець, елементи якого обраховуються за формулою, згідно варіанту. 2).Задати квадратну матрицю А1 порядку n та вектори-стовпці b1 та c1 з n елементами кожен. Отримати вектор y2 згідно формули, що задається варіантом. 3).Задати квадратні матриці А2 та B2 порядку n. Отримати матрицю Y3, яка залежить від А2, B2 та додатково визначеної матриці С2, елементи якої знаходяться за формулою, вказаною варіантом. y' означає операцію транспонування; i,j=1…n (n – вхідна розмірність). 2 x = Y32y2 + Y3(y1 + y2) + y1y2'y2 + Y33y1 стовпець   bi=1/(i2+2+i) для парних і bi=1/i для непарних і A1(b1+2c1) A2(C2-B2) Cij=1/(i+j)   Функціональна декомпозиція  Скріншот програми / Результати роботи Параметри комп’ютера: CPU: Intel Core i3-4000M 2.40Ghz, 2 Cores, 4 Threads RAM: 8Gb DDR3-1600Mhz OS: Windows 10 Enterprise x64 Час виконання обчислень в секундах  Розмірність Однопоточна програма MPI-програма  10 0.014 0.009  100 0.199 0.172  500 8.894 8.177  1000 66.324 65.356  1500 223.935 222.646  2000 507.783 503.884   Висновок В роботі використано паралелізм на рівні підзадач, оскільки передбачається, що кожен блок зі схеми декомпозиції є реалізований у виді функції. Це є середньоблоковий паралелізм. Обмін даними відбувається через пересилання даних між процесами. MPI-програма не є значно швидшою за однопоточну, бо в одному з процесів матриця множиться на матрицю, а в інших процесах паралельно матриця множиться на стовпець. Інші процеси вимушені чекати, поки кожен процес завершить проміжні обчислення для отримання даних для подальших обчислень.
Антиботан аватар за замовчуванням

07.05.2017 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!