From 13d5139b19e37d03d205270404899f9e6eba78ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=90=D0=BB?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B2?= Date: Fri, 22 Dec 2023 22:22:14 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=206?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- alexandrov_dmitrii_lab_6/matrix.py | 109 +++++++++++++++++++++ alexandrov_dmitrii_lab_6/readme.md | 42 ++++++++ alexandrov_dmitrii_lab_6/screens/30x30.png | Bin 0 -> 65924 bytes alexandrov_dmitrii_lab_6/screens/5x5.png | Bin 0 -> 13741 bytes alexandrov_dmitrii_lab_6/screens/bench.png | Bin 0 -> 41879 bytes alexandrov_dmitrii_lab_6/service.py | 35 +++++++ alexandrov_dmitrii_lab_6/template.html | 18 ++++ 7 files changed, 204 insertions(+) create mode 100644 alexandrov_dmitrii_lab_6/matrix.py create mode 100644 alexandrov_dmitrii_lab_6/readme.md create mode 100644 alexandrov_dmitrii_lab_6/screens/30x30.png create mode 100644 alexandrov_dmitrii_lab_6/screens/5x5.png create mode 100644 alexandrov_dmitrii_lab_6/screens/bench.png create mode 100644 alexandrov_dmitrii_lab_6/service.py create mode 100644 alexandrov_dmitrii_lab_6/template.html diff --git a/alexandrov_dmitrii_lab_6/matrix.py b/alexandrov_dmitrii_lab_6/matrix.py new file mode 100644 index 0000000..9629fe5 --- /dev/null +++ b/alexandrov_dmitrii_lab_6/matrix.py @@ -0,0 +1,109 @@ +import numpy as np +import time +from concurrent.futures import ProcessPoolExecutor + +benchmark = {} +matrix = [] +# int переполняется +det = 0.0 + + +# ручной метод - от размера матриц ~15 и выше может случайно винду +def get_determinant_usr_implementation(input_m): + if input_m.size == 4: + return input_m[0, 0] * input_m[1, 1] - input_m[0, 1] * input_m[1, 0] + r_det = [0] * input_m.size + for i in range(input_m.shape[0]): + r_det[i] = input_m[0, i] + if r_det[i] != 0: + if i % 2 == 1: + r_det[i] = r_det[i] * -1 + r_det[i] = r_det[i] * get_determinant_usr_implementation( + np.delete(np.delete(input_m, 0, axis=0), i, axis=1)) + return sum(r_det) + + +def get_determinant_component_usr_implementation(input_m, col): + r_det = float(input_m[0, col]) + if r_det == 0: + return r_det + if col % 2 == 1: + r_det = r_det * -1 + return r_det * get_determinant_usr_implementation(np.delete(np.delete(input_m, 0, axis=0), col, axis=1)) + + +def get_determinant_component(input_m, col): + r_det = float(input_m[0, col]) + if r_det == 0: + return r_det + if col % 2 == 1: + r_det = r_det * -1 + return r_det * np.linalg.det(np.delete(np.delete(input_m, 0, axis=0), col, axis=1)) + + +def calculate_determinant_parallel(size, proc_num): + global matrix + global det + + if proc_num > 61: + proc_num = 61 + + matrix = np.random.randint(10, size=(size, size)) + start_time = time.time() + with ProcessPoolExecutor(max_workers=proc_num) as executor: + if size <= 10: + components = [executor.submit(get_determinant_component_usr_implementation, matrix, i) for i in range(size)] + else: + components = [executor.submit(get_determinant_component, matrix, i) for i in range(size)] + res = [fut.result() for fut in components] + + det = sum(res) + return time.time() - start_time + + +def do_research(): + benchmark['size=2, proc_num=1: '] = calculate_determinant_parallel(2, 1) + benchmark['size=5, proc_num=1: '] = calculate_determinant_parallel(5, 1) + benchmark['size=10, proc_num=1: '] = calculate_determinant_parallel(10, 1) + benchmark['size=2, proc_num=10: '] = calculate_determinant_parallel(2, 10) + benchmark['size=5, proc_num=10: '] = calculate_determinant_parallel(5, 10) + benchmark['size=10, proc_num=10: '] = calculate_determinant_parallel(10, 10) + benchmark['size=2, proc_num=100: '] = calculate_determinant_parallel(2, 100) + benchmark['size=5, proc_num=100: '] = calculate_determinant_parallel(5, 100) + benchmark['size=10, proc_num=100: '] = calculate_determinant_parallel(10, 100) + print(benchmark) + + +if __name__ == '__main__': + do_research() + + +def get_results(size, proc_num): + global matrix + global det + + res = "time: " + res = res + str(calculate_determinant_parallel(size, proc_num)) + + res = res + "
" + for i in range(size): + res = res + "

" + for a in range(size): + res = res + str(matrix[i][a]) + ", " + res = res + "

" + res = res + "

" + str(det) + "

" + + return res + + +def get_benchmark(): + global benchmark + + if len(benchmark) == 0: + do_research() + + res = '' + for key, val in benchmark.items(): + res = res + "

" + key + str(val) + "

" + + return res diff --git a/alexandrov_dmitrii_lab_6/readme.md b/alexandrov_dmitrii_lab_6/readme.md new file mode 100644 index 0000000..00f13a9 --- /dev/null +++ b/alexandrov_dmitrii_lab_6/readme.md @@ -0,0 +1,42 @@ +## Задание +Создать программу, производящую поиск детерминанта больших квадратных матриц. + +## Выполнение +Программа состоит из модуля-сервиса service и модуля для вычислений matrix. +В модуле для вычислений реализовано: +* метод get_determinant_usr_implementation. "Вручную" ищет детерминант переданной матрицы. +* метод get_determinant_component_usr_implementation. Ищет минорный детерминант, используя "ручной" метод, для реализации распараллеливания. +* метод get_determinant_component. Ищет минорный детерминант, используя библиотечный метод для поиска детерминантов миноров, для распараллеливания. +* метод calculate_determinant_parallel. Генерирует случайные матрицы заданного размера и производит параллельные вычисления предыдущими методами в зависимости от размера (если размер больше 10 использовать ручной метод лучше не надо, можно случайно компьютер). +* метод прогона эксперимента с заполнением данных результатами. Методы интерфейса доступа. + +Способ вычисления: в методе do_multiplication_parallel матрица B транспонируется, создаётся объект ProcessPoolExecutor с переданным количеством процессов, который их создаёт и распределяет по ним вычисление минорных детерминантов первой строки для последующего сложения, в зависимости от размера матрицы используется get_determinant_component_usr_implementation или get_determinant_component. +Если передать методу число 1 в качестве количества процессов, то соответственно вычисление произойдёт в одном потоке. + +## Результаты +Был создан Flask сервис, позволяющий получать детерминанты случайных квадратных матриц. +Возможно задать размер и количество процессов. + +Дополнительно возможно провести эксперимент и получить результаты умножения матриц размера 2, 5 и 10 одним, десятью и ста процессами. +Для создания бенчмарка был сокращён размер матриц, поскольку: +* ручной метод не может в обозримом будущем посчитать матрицу размером больше 15-20. +* библиотечный метод считает детерминант за секунду-две без заметных изменений от увеличения количества процессов обработки. анализировать результаты не получится (разве что заключить, что метод не нуждается в распараллеливании). + +Поскольку распараллеливание основано на процессах, а в системе имеется 6 ядер (+2 виртуальных), то максимальное увеличение производительности будет достигнуто при выборе такого количества процессов. +Более 61 потока урезается до 61 из-за системных ограничений. + +Как видно из бенчмарка: +* в случае больших размеров скорость максимальна при выборе 100 (61) процессов, можно заключить, что алгоритм "ручной" алгоритм хорошо реагирует на распараллеливание. +* в случае 100 процессов из-за издержек создания процессов малые матрицы обрабатываются на порядок дольше, нежели одним процессом. +* в случае 100 процессов благодаря распараллеливанию скорость обработки матрицы размером 10 оказалась в 5 раз выше скорости обработки одним процессом. + +Результаты: +![matrix5x5](screens/5x5.png) + +![matrix30x30](screens/30x30.png) + +Бенчмарк: +![bench](screens/bench.png) + +## Ссылка на видео +https://drive.google.com/file/d/1kxMccJDCQsVK1qcrsiQKDXUuDzPQ1Lsc/view?usp=drive_link \ No newline at end of file diff --git a/alexandrov_dmitrii_lab_6/screens/30x30.png b/alexandrov_dmitrii_lab_6/screens/30x30.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ba6060126c07a1ce2b917e6acd9c27793f83a8 GIT binary patch literal 65924 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

PP;2sfT&Q2?t7jjZf#= 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 BnnVBq literal 0 HcmV?d00001 diff --git a/alexandrov_dmitrii_lab_6/service.py b/alexandrov_dmitrii_lab_6/service.py new file mode 100644 index 0000000..3b1f5bd --- /dev/null +++ b/alexandrov_dmitrii_lab_6/service.py @@ -0,0 +1,35 @@ +from flask import Flask, redirect, request, render_template +import matrix + +app = Flask(__name__, template_folder='') + +results = '' + + +@app.route('/') +def home(): + global results + return render_template("template.html", results_html=results) + + +@app.route('/do') +def do(): + global results + + data = request.args + results = matrix.get_results(int(data['size']), int(data['proc_num'])) + + return redirect("/") + + +@app.route('/benchmark') +def benchmark(): + global results + + results = matrix.get_benchmark() + + return redirect("/") + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=8082) diff --git a/alexandrov_dmitrii_lab_6/template.html b/alexandrov_dmitrii_lab_6/template.html new file mode 100644 index 0000000..c999367 --- /dev/null +++ b/alexandrov_dmitrii_lab_6/template.html @@ -0,0 +1,18 @@ + + + + + Matrix + + +

+ + + +
+
+ +
+ {{results_html|safe}} + + \ No newline at end of file