From 43901668839729ce525099ef8575734d43c7fd95 Mon Sep 17 00:00:00 2001 From: Zyzf Date: Tue, 26 Nov 2024 19:08:28 +0400 Subject: [PATCH] done without video --- kalyshev_yan_lab_6/Dockerfile | 10 +++ kalyshev_yan_lab_6/README.md | 20 ++++++ kalyshev_yan_lab_6/docker-compose.yml | 3 + kalyshev_yan_lab_6/images/result.png | Bin 0 -> 106937 bytes kalyshev_yan_lab_6/main.py | 91 ++++++++++++++++++++++++++ kalyshev_yan_lab_6/requirements.txt | 1 + 6 files changed, 125 insertions(+) create mode 100644 kalyshev_yan_lab_6/Dockerfile create mode 100644 kalyshev_yan_lab_6/README.md create mode 100644 kalyshev_yan_lab_6/docker-compose.yml create mode 100644 kalyshev_yan_lab_6/images/result.png create mode 100644 kalyshev_yan_lab_6/main.py create mode 100644 kalyshev_yan_lab_6/requirements.txt diff --git a/kalyshev_yan_lab_6/Dockerfile b/kalyshev_yan_lab_6/Dockerfile new file mode 100644 index 0000000..4c27c68 --- /dev/null +++ b/kalyshev_yan_lab_6/Dockerfile @@ -0,0 +1,10 @@ +FROM python:3 + +WORKDIR /usr/src/app + +COPY requirements.txt ./ +RUN pip install --no-cache-dir -r requirements.txt + +COPY . . + +CMD [ "python", "./main.py" ] diff --git a/kalyshev_yan_lab_6/README.md b/kalyshev_yan_lab_6/README.md new file mode 100644 index 0000000..d1291ec --- /dev/null +++ b/kalyshev_yan_lab_6/README.md @@ -0,0 +1,20 @@ +# Отчет. Лабораторная работа 6 + +## Описание + +В ходе лабораторной работы были реализованы алгоритмы нахождение детерминанта квадратной матрицы на python: обычный и параллельный. + +![result](./images/result.png) +Из результатов видно, что на маленьких матрицах параллелизм не имеет смысла, но с увеличением размера матриц, время обработки значительно падает по сравнению с обычным алгоритмом. + +## Как запустить + +Для того, чтобы запустить сервисы, необходимо выполнить следующие действия: + +1. Установить и запустить Docker Engine или Docker Desktop +2. Через консоль перейти в папку, в которой расположен файл docker-compose.yml +3. Выполнить команду для запуска: + +``` +docker compose up -d +``` diff --git a/kalyshev_yan_lab_6/docker-compose.yml b/kalyshev_yan_lab_6/docker-compose.yml new file mode 100644 index 0000000..4f445ae --- /dev/null +++ b/kalyshev_yan_lab_6/docker-compose.yml @@ -0,0 +1,3 @@ +services: + main: + build: . diff --git a/kalyshev_yan_lab_6/images/result.png b/kalyshev_yan_lab_6/images/result.png new file mode 100644 index 0000000000000000000000000000000000000000..c6923090aaac60b7f985b8e2f24440f40b466ab3 GIT binary patch literal 106937 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
    *Zx+gwXq+@gOIV{I)7 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 literal 0 HcmV?d00001 diff --git a/kalyshev_yan_lab_6/main.py b/kalyshev_yan_lab_6/main.py new file mode 100644 index 0000000..23df401 --- /dev/null +++ b/kalyshev_yan_lab_6/main.py @@ -0,0 +1,91 @@ +from multiprocessing import Pool, cpu_count +import time +import numpy as np + + +def determinant(matrix): + matrix = np.array(matrix, dtype=float) + n = matrix.shape[0] + + for i in range(n): + if matrix[i, i] == 0: + for j in range(i + 1, n): + if matrix[j, i] != 0: + matrix[[i, j]] = matrix[[j, i]] + break + if matrix[i, i] == 0: + return 0 + + for j in range(i + 1, n): + factor = matrix[j, i] / matrix[i, i] + matrix[j] -= factor * matrix[i] + + det = 1.0 + for i in range(n): + det *= matrix[i, i] + return det + + +# Пример использования +A = np.random.rand(100, 100) +print(determinant(A)) + + +def _determinant_parallel_chunk(args): + matrix, start_row, end_row = args + n = matrix.shape[0] + for i in range(start_row, end_row): + for j in range(i + 1, n): + factor = matrix[j, i] / matrix[i, i] + matrix[j] -= factor * matrix[i] + return matrix + + +def determinant_parallel(matrix, num_processes=None): + if num_processes is None: + num_processes = cpu_count() + + matrix = np.array(matrix, dtype=float) + n = matrix.shape[0] + + chunk_size = n // num_processes + tasks = [ + ( + matrix.copy(), + i * chunk_size, + (i + 1) * chunk_size if i != num_processes - 1 else n, + ) + for i in range(num_processes) + ] + + with Pool(processes=num_processes) as pool: + results = pool.map(_determinant_parallel_chunk, tasks) + + # В каждой части делаем лишь частичное вычитание + # Теперь выполняем окончательное вычисление детерминанта + det = 1.0 + for i in range(n): + det *= results[0][i, i] + return det + + +# Пример использования +A = np.random.rand(100, 100) +print(determinant_parallel(A, num_processes=4)) + +sizes = [100, 300, 500] +num_processes = 12 + +for size in sizes: + A = np.random.rand(size, size) + start_time = time.time() + det_seq = determinant(A) + seq_time = time.time() - start_time + + start_time = time.time() + det_par = determinant_parallel(A, num_processes=num_processes) + par_time = time.time() - start_time + + print( + f"Size {size}x{size}: Sequential Time = {seq_time:.4f} s, Parallel Time = {par_time:.4f} s" + ) diff --git a/kalyshev_yan_lab_6/requirements.txt b/kalyshev_yan_lab_6/requirements.txt new file mode 100644 index 0000000..24ce15a --- /dev/null +++ b/kalyshev_yan_lab_6/requirements.txt @@ -0,0 +1 @@ +numpy