DAS_2024_1/bondarenko_max_lab_5
2024-12-13 23:51:05 +04:00
..
benchmark.js bondarenko_max_lab_5_is_ready 2024-12-13 23:51:05 +04:00
benchmark.png bondarenko_max_lab_5_is_ready 2024-12-13 23:51:05 +04:00
matrix.operations.js bondarenko_max_lab_5_is_ready 2024-12-13 23:51:05 +04:00
matrix.worker.js bondarenko_max_lab_5_is_ready 2024-12-13 23:51:05 +04:00
README.md bondarenko_max_lab_5_is_ready 2024-12-13 23:51:05 +04:00

Лабораторная работа 1 - Знакомство с Docker и Docker Compose

ПИбд-42 || Бондаренко Максим

Описание работы

Цель

Note

Изучение современных технологий контейнеризации.

Результат работы

Note

Кратко: реализовать умножение двух больших квадратных матриц.

Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.

Краткое описание модулей и их работа

  1. matrixOperations.js multiplyMatricesSequential(A, B):
  • Перебирает элементы матриц и вычисляет их произведение, заполняя результирующую матрицу. multiplyMatricesParallel(A, B, numThreads):
  • Делит работу между потоками, каждый из которых умножает часть матриц. Запускает воркеры и собирает их результаты.
  1. benchmark.js generateMatrix(size):
  • Создает матрицу с случайными значениями заданного размера. benchmark():
  • Вызывает generateMatrix для создания матриц, затем измеряет время выполнения multiplyMatricesSequential и multiplyMatricesParallel с различными параметрами, выводит результаты.
  1. matrixWorker.js multiplyPartial(A, B, start, end):
  • Воркеры выполняют умножение только для части матриц, определенной параметрами start и end, и возвращают частичные результаты через parentPort.

Запуск

node benchmark.js

Результат работы

Important

benchmark.png

В отчете отражены времена выполнения для каждого из подходов, что позволяет оценить, как число потоков влияет на скорость вычислений для матриц разного размера.

Ссылка на видео: https://cloud.mail.ru/public/rEGy/HaBwrm7t8