Алгоритм роботи потоків
Змінна, що використовується при створені циклів. Виконання компонування результатів у вектор; Таблиця 2. Імена, типи та призначення змінних. Збереження особистих чисел до файлу result_number. Змінна для збереження визначника матриці. Очікування сигналу від головного потоку; Відправлення даних до головного потоку. Таблиця 1. Алгоритм роботи потоків. Прийом даних від головного потоку; Отримання… Читати ще >
Алгоритм роботи потоків (реферат, курсова, диплом, контрольна)
Для прискорення та спрощення процесу написання програми було виконано розподіл задач між потоками. Виконані у даному розділі етапи розробки паралельного алгоритму допомагають у створенні програми з метою її правильної реалізації. Алгоритм роботи потоків заданої програми наведений у таблиці 1.
Таблиця 1. Алгоритм роботи потоків.
Tгол | Т1-Тk. |
Зчитування матриці з файлу matrix, а розмірності матриці; Створення потоків; Розподіл даних між потокоми; Сигнал про необхідність заходження особистих чисел (всім потокам); Передання ресурсів всім потокам; Очікування сигналу про закінчення сортування (від усіх потоків); Отримання даних від усіх потоків; Виконання компонування результатів у вектор; Збереження особистих чисел до файлу result_number. | Очікування сигналу від головного потоку; Прийом даних від головного потоку; Знаходження визначника матриці; Сигнал про закінчення виконання; Відправлення даних до головного потоку. |
Визначення глобальних та локальних змінних
При написанні програми було використано глобальні та локальні змінні. У програмуванні, глобальна змінна це — змінна, яка доступна в будь-якій області видимості, за винятком перекриття її іншою змінною з тим самим ім'ям. Механізм взаємодій з глобальними змінними називається механізмом глобального середовища. Парадигма глобального середовища протиставляється парадигмі місцевого середовища, згідно з якою всі змінні місцеві без використання спільної пам’яті. Локальні змінні - змінні, визначені всередині підпрограми (функції). Вони доступні тільки всередині функції, в якій вони визначені. Імена, типи та призначення глобальних та локальних змінних, що використовуються у даній програмі, наведені в таблиці 2.
Таблиця 2. Імена, типи та призначення змінних.
Ім'я ідентифікатора | Тип. | Призначення. |
threadNumber. | integer. | Змінна, яка зберігає число, що відповідає кількості потоків. Після запуску програми користувачу пропонується увести кількість потоків, що беруть участь у знаходженні визначника. |
matrixFirst. | double. | Двомірний масив (матриця), що вводиться користувачем вручну до файлу matrix. |
N1. | integer. | Змінна, що зберігає кількість рядків у вихідній матриці. |
M1. | integer. | Змінна, що зберігає кількість стовбців у вихідній матриці. |
resultDeterm. | double. | Змінна для збереження визначника матриці. |
tryCount. | integer. | Змінна, що використовується при іменування тестового файлу, що зберігає відсортовану матрицю, result_[tryCount]. |
startTime. | DateTime. | Змінна, що зберігає час у який почалось сортування масиву. |
timeSpent. | DateTime. | Змінна, що зберігає час у який було завершено сортування масиву. |
resultFile. | FileStream. | Змінна, що використовується для створення текстового файлу result, у якому зберігається матриця після сортування рядків. |
TryParse. | integer. | Змінна, що використовується для контролю введення при запиті кількості потоків цілого числа. |
I. | integer. | Змінна, що використовується при створені циклів. |
j. | integer. | Змінна, що використовується при створені циклів. |