- •Блок-схема паралельного алгоритму Флойда
- •Лістинг паралельної програми для реалізації алгоритму Флойда
- •Int *source,*dest;
- •Int scount,rows_count;//кількість елементів для передачі
- •Int *my_d,*my_s,*my_Mas;//масиви для приймання, що міститимуть матриці d та s
- •Int *displs,*Scatter_scount;
- •Ifstream file("input.Txt");
- •If(!file){
- •Int *exeption1;
Додаток Б
Блок-схема паралельного алгоритму Флойда
1 |
П очаток |
|
|
|
|
2 |
В изначення к-кості процесів(ProcNum) |
|
|
|
|
3 |
ProcNum 8 |
Ні
|
|
Так |
11 Помилка |
4 |
Створення віртуальної топології гіперкуба |
|
|
|
12 Кінець |
5 |
Визначення номера процесу(ProcRank) |
|
|
|
|
6 |
P rocRank=0 |
Ні
|
|
Так |
|
7 |
Утворення матриці відстаней(D) |
|
|
|
|
8 |
Утворення матриці послід. вершин(S) |
|
|
|
|
9 |
Розсилання частин D і S по всіх процесах |
|
|
|
|
10 |
А |
|
|
|
|
13 |
А |
|
|
|
|
14
|
0<p<ProcNum |
|
|
|
|
15 |
ProcRank=p |
Ні
|
|
Так |
|
16
|
0<k<Drows |
|
|
|
|
17 |
П осилання k-го рядка блоку D |
|
|
|
|
18 |
|
|
|
|
|
19 |
Н адсилання блоку D 0-му процесу |
|
|
|
|
20 |
В ідкриття фалу input.txt |
|
|
|
|
21 |
Файл існує? |
Н і
|
|
Так |
26 Помилка |
22 |
Ч итання даних файлу start_node, end_node |
|
|
|
|
23 |
Дані коректні? |
Н і
|
|
Так |
27 Помилка |
24 |
В иведення мінімального шляху |
|
25 |
Кінець |
|
Додаток В