.. | ||
CalcMatrixDeterminant | ||
images | ||
.gitignore | ||
README.md |
Лабораторная работа №6 - Определение детерминанта матрицы с помощью параллельных вычислений
Описание
Были реализованы 2 алгоритма для определения детерминанта матрицы: обычный и параллельный. Для больших матриц лучше использовать метод Гаусса, который имеет временную сложность 𝑂(𝑛^3) и более подходящий для бенчмаркинга.
Результат
Описание работы алгоритмов с матрицами 100x100 и 300x300
Здесь мы видим, что в случае с матрицами 100x100 и 300x300 самым быстрым алгоритмом является обычный. Параллельный алгоритм при одном потоке выполняет задачу медленнее, чем при обычном алгоритме и при большем количестве потоков. Также здесь заметно, что начиная с двух потоков задача выполняется дольше. Это связано с тем, что на управление большим количеством потоков тратятся ресурсы. Чем больше потоков, тем больше ресурсов требуется процессору для управления ими, возникает конкуренция за ресурсы.
Описание работы алгоритмов с матрицей 500x500
В случае с матрицей 500x500 мы видим, что параллельный алгорит быстрее выполняет свою задачу, чем обычный. Чем больше потоков - тем быстрее расчитывается детерминант. Это связано с тем, что потоки распределяют между собой задачи по расчетам детерминанта, и соотвественно заканчивают быстрее. Из этого можем сделать вывод, что параллельный алгоритм больше подходит для работы с большими матрицами.
Отчет
Работоспособность: Видео