DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота №4 з дисципліни «Технології розподілених систем та паралельних обчислень»

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Технології розподілених систем та паралельних обчислень
Група:
КН-31
Коротко про документ

Про що ця робота

У лабораторній роботі виконано пошук шляху на графі за допомогою алгоритму Лі з використанням технології Cilk. Проведено порівняння часу виконання програми з використанням паралельних обчислень та без них.

У роботі розглядаються

  • Розподілене програмування
  • Технологія Cilk
  • Алгоритм Лі
  • Пошук шляху на графі
  • Паралельні обчислення
  • Мова програмування C++

Зміст і розділи

  1. Завдання
  2. Код програми
  3. Програма в роботі
  4. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають паралельні та розподілені обчислення.
Викладачі:Викладач кафедри

Ключові поняття

Cilkалгоритм Ліграфпаралельні обчисленнярозподілене програмуванняC++пошук шляхуcilk_forпродуктивність

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Лабораторна робота №4 з дисципліни: «Технології розподілених систем та паралельних обчислень» Варіант - 6 Тема роботи: Розподілене програмування на основі технології Cilk. Завдання: Знаходження шляху на графі з допомогою алгоритму Лі. Виконання. Код програми: #include <iostream> #include <string> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <dos.h> #include <windows.h> #include <cilk.h> #include <cilk_stub.h> #include <reducer_opadd.h> #include <stdio.h> using namespace std; using namespace cilk; #define FALSE 0 #define TRUE 1 #define NROWS 6 #define MCOLS 6 // Symbols: // '.' = open // '#' = blocked // 'S' = start // 'G' = goal // '+' = path // 'x' = bad path char maze[NROWS][MCOLS] = { { 'S', '.', '.', '.', '#', '#' }, { '#', '.', '#', '.', '.', '.' }, { '#', '.', '#', '#', '.', '#' }, { '.', '.', '#', '.', '#', '#' }, { '#', '.', '.', '.', '#', 'G' }, { '#', '.', '#', '.', '.', '.' } }; void display_maze(void); int find_path(int x, int y); int main(void) { clock_t t = clock(); display_maze(); if (find_path(0, 0) == TRUE) printf("Success!\n"); else printf("Failed\n"); display_maze(); int i; cin >> i; clock_t t1 = clock(); cout << "TIME: " << (t1 - t) / 1000 << "ms" << endl; system("pause"); return 0; } // main() void display_maze(void) { int i; printf("MAZE:\n"); cilk_for (i = 0; i < NROWS; i++) printf("%.*s\n", MCOLS, maze[i]); printf("\n"); return; } int find_path(int x, int y) { if (x < 0 || x > MCOLS - 1 || y < 0 || y > NROWS - 1) return FALSE; if (maze[y][x] == 'G') return TRUE; if (maze[y][x] != '.' && maze[y][x] != 'S') return FALSE; maze[y][x] = '+'; if (find_path(x, y - 1) == TRUE) return TRUE; if (find_path(x + 1, y) == TRUE) return TRUE; if (find_path(x, y + 1) == TRUE) return TRUE; if (find_path(x - 1, y) == TRUE) return TRUE; maze[y][x] = 'x'; return FALSE; }// find_path() Програма в роботі: Без використання Cilk: / З використанням Cilk: / cilk працює швидше. Хоча опрацьовувались не велика кількість даних, але отримано результат.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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