bondarenko_max_lab_5_is_ready

This commit is contained in:
maxnes3 2024-12-14 01:13:43 +04:00
parent 8e5776d104
commit b64b354a74

View File

@ -1,31 +1,26 @@
# Лабораторная работа 1 - Знакомство с Docker и Docker Compose # Лабораторная работа 5 - Вспоминаем математику или параллельное перемножение матриц
### ПИбд-42 || Бондаренко Максим ### ПИбд-42 || Бондаренко Максим
# Описание работы # Описание работы
## Цель ## Задание
> [!NOTE]
> Изучение современных технологий контейнеризации.
## Результат работы
> [!NOTE] > [!NOTE]
> Кратко: реализовать умножение двух больших квадратных матриц. > Кратко: реализовать умножение двух больших квадратных матриц.
> >
> Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности. > Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.
## Краткое описание модулей и их работа ## Краткое описание модулей и их работа
1. matrixOperations.js 1. matrix.operations.js
multiplyMatricesSequential(A, B): multiplyMatricesSequential(A, B):
- Перебирает элементы матриц и вычисляет их произведение, заполняя результирующую матрицу. - Перебирает элементы матриц и вычисляет их произведение, заполняя результирующую матрицу.
multiplyMatricesParallel(A, B, numThreads): multiplyMatricesParallel(A, B, numThreads):
- Делит работу между потоками, каждый из которых умножает часть матриц. Запускает воркеры и собирает их результаты. - Делит работу между потоками, каждый из которых умножает часть матриц. Запускает воркеры и собирает их результаты.
2. benchmark.js 2. benchmark.js
generateMatrix(size): generateMatrix(size):
- Создает матрицу с случайными значениями заданного размера. - Создает матрицу с случайными значениями заданного размера.
benchmark(): benchmark():
- Вызывает generateMatrix для создания матриц, затем измеряет время выполнения multiplyMatricesSequential и multiplyMatricesParallel с различными параметрами, выводит результаты. - Вызывает generateMatrix для создания матриц, затем измеряет время выполнения multiplyMatricesSequential и multiplyMatricesParallel с различными параметрами, выводит результаты.
3. matrixWorker.js 3. matrix.worker.js
multiplyPartial(A, B, start, end): multiplyPartial(A, B, start, end):
- Воркеры выполняют умножение только для части матриц, определенной параметрами start и end, и возвращают частичные результаты через parentPort. - Воркеры выполняют умножение только для части матриц, определенной параметрами start и end, и возвращают частичные результаты через parentPort.