From 43901668839729ce525099ef8575734d43c7fd95 Mon Sep 17 00:00:00 2001 From: Zyzf Date: Tue, 26 Nov 2024 19:08:28 +0400 Subject: [PATCH 1/2] 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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