DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Паралельне представлення алгоритмів

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
СІ
Кафедра:
Спеціалізовані комп’ютерні системи

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

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

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

Міністерство освіти і науки Національний університет “Львівська політехніка” Кафедра ЕОМ / Звіт з лабораторної роботи № 3 з дисципліни: “Паралельні та розподілені обчислення” на тему: “Паралельне представлення алгоритмів” Мета : Вивчити можливості паралельного представлення алгоритмів. Набути навиків такого представлення. Завдання Запропонувати та реалізувати локально-рекурсивний алгоритм обчислення виразу:  , де А та В матриці з елементами  та , відповідно(), тобто:  () . Тип вхідних послідовностей визначається згідно варіанту. Матриця А задається однозначно і залежить лише від розмірності даних. Для матриці В: заштрихована область – довільні цілі числа, відмінні від нуля, а не заштрихована область – нулі. Варіант № Тип матриці А Тип матриці В   14 111…111 011…110 … 011…110 111…111    Графи залежностей (n = 4) Локалізований граф залежностей Оптимізований граф залежностей      Текст програми #include <iostream> #include <cmath> #include <iomanip> /*void fillFirstMatrix(int** arr, size_t size) { int iterator = 1; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if (i > 0 && i < size-1 &&( j==0 || j==size-1)) { arr[i][j] = 0; } else { arr[i][j] = 1; } } bool isTopHalf = i + 1 < round(size / 2.0); if (isTopHalf) { iterator++; } else if (!(i + 1 <= size / 2)) { iterator--; } } }*/ void fillFirstMatrix(int** arr, size_t size) { int iterator = 1; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if (j + 1 - iterator <= 0 || size - j <= iterator) { arr[j][i] = 1; } else { arr[j][i] = 0; } } bool isTopHalf = i + 1 < round(size / 2.0); if (isTopHalf) { iterator++; } else if (!(i + 1 <= size / 2)) { iterator--; } } } void fillSecondMatrix(int** arr, size_t size) { int iterator = 1; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { if (j + 1 - iterator <= 0) { arr[i][j] = rand() % 25 + 1; } else { arr[i][j] = 0; } } bool isTopHalf = i + 1 < round(size / 2.0); if (isTopHalf) { iterator++; } else if (!(i + 1 <= size / 2)) { iterator--; } } } void mularray(int**A, int**B, int n, int**Y) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { Y[i][j] = 0; for (int k = 0; k < n; ++k) { Y[i][j] = Y[i][j] + A[i][k] * B[k][j]; } } } } void printMatrix(int** arr, size_t size) { for (int i = 0; i < size; ++i) { for (int j = 0; j < size; ++j) { std::cout << std::setw(4) << arr[i][j]; } std::cout << std::endl; } } void main() { std::cout << "Enter size: " << std::endl;; int size; std::cin >> size; int** arrA = new int*[size]; int** arrB = new int*[size]; int** arrC = new int*[size]; for (int i = 0; i < size; i++) { arrA[i] = new int[size]; arrB[i] = new int[size]; arrC[i] = new int[size]; } fillFirstMatrix(arrA, size); std::cout << "Matrix A:" << std::endl; printMatrix(arrA, size); std::cout << std::endl; fillSecondMatrix(arrB, size); std::cout << "Matrix B:" << std::endl; printMatrix(arrB, size); std::cout << std::endl; mularray(arrA, arrB, size, arrC); std::cout << "Matrix C:" << std::endl; printMatrix(arrC, size); for (size_t i = 0; i < size; i++) { delete[] arrA[i]; delete[] arrB[i]; delete[] arrC[i]; } delete[] arrA; delete[] arrB; delete[] arrC; system("pause"); } Результат виконання роботи: Висновок Виконуючи лабораторну роботу я отримала навички паралельного обчислення алгоритмів на базі множення матриць, також навчилася реалізовувати алгоритм з одноразовим присвоєнням і локально-рекурсивний алгоритм, який працює на базі локалізованого графа.
Антиботан аватар за замовчуванням

28.08.2022 13:12

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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