From f70c507b05131af54e18d8af616b8c334480ab9e Mon Sep 17 00:00:00 2001 From: BlasphemyGod Date: Mon, 18 Nov 2024 17:08:58 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A8=D0=B5=D1=81=D1=82=D0=B0=D1=8F=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- polevoy_sergey_lab_6/cargo.toml | 11 +++ polevoy_sergey_lab_6/image.png | Bin 0 -> 94631 bytes polevoy_sergey_lab_6/readme.md | 13 ++++ polevoy_sergey_lab_6/src/main.rs | 125 +++++++++++++++++++++++++++++++ 4 files changed, 149 insertions(+) create mode 100644 polevoy_sergey_lab_6/cargo.toml create mode 100644 polevoy_sergey_lab_6/image.png create mode 100644 polevoy_sergey_lab_6/readme.md create mode 100644 polevoy_sergey_lab_6/src/main.rs diff --git a/polevoy_sergey_lab_6/cargo.toml b/polevoy_sergey_lab_6/cargo.toml new file mode 100644 index 0000000..42b884c --- /dev/null +++ b/polevoy_sergey_lab_6/cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "matrix" +version = "0.1.0" +edition = "2021" + +[profile.release] +strip = true +opt-level = 3 +panic = "abort" + +[dependencies] diff --git a/polevoy_sergey_lab_6/image.png b/polevoy_sergey_lab_6/image.png new file mode 100644 index 0000000000000000000000000000000000000000..985cb4911a9a969e8ef5908155736291d16b77bd GIT binary patch literal 94631 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 OCBgyznx*(K>5w^?Gk*>w2{?IzVlj$(%p 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%0A=bpJgrY0Q9_2;1ZXbXi- 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 literal 0 HcmV?d00001 diff --git a/polevoy_sergey_lab_6/readme.md b/polevoy_sergey_lab_6/readme.md new file mode 100644 index 0000000..95cb11e --- /dev/null +++ b/polevoy_sergey_lab_6/readme.md @@ -0,0 +1,13 @@ +# Лабораторная работа №6 +## Полевой Сергей ПИбд-42 +### Реализация + +Было решено распределять работу по потокам в виде диапазонов столбцов матрицы, по которым каждый поток по отдельности найдёт определитель минора, далее результаты работ каждого потока передаются по mpsc каналу и суммируется для окончательного результата. + +#### Скриншот результата работы +![alt text](image.png) + +#### Выводы +Подобно результату прошлой лабораторной работы, очевидного выигрыша программа достигает при должно большом размере матрицы, так как при малых значениях размера больше времени тратится на создание и управление потоками. + +#### Демонстрация работы доступна по [ссылке](https://disk.yandex.ru/i/lv-Szz2Xzpvx7w) \ No newline at end of file diff --git a/polevoy_sergey_lab_6/src/main.rs b/polevoy_sergey_lab_6/src/main.rs new file mode 100644 index 0000000..a97b5ee --- /dev/null +++ b/polevoy_sergey_lab_6/src/main.rs @@ -0,0 +1,125 @@ +use std::sync; +use std::thread; +use std::time; + +// Квадратная матрица хранится в куче как последовательность всех её элементов, при этом на этапе компиляции всегда известен её размер +struct Matrix { + inner: Vec<[i16; N]>, +} + +impl Matrix { + fn new() -> Matrix { + Matrix { + inner: vec![[0; N]; N], + } + } + + // Псевдослучайная генерация данных для матрицы + fn random(seed: i16) -> Matrix { + let mut matrix = Matrix::new(); + + for i in 0..N { + for j in 0..N { + matrix.inner[i][j] = i as i16 + j as i16 - seed; + } + } + + matrix + } +} + +// Рекурсивное получение определителя по первой строке, также включает необязательные аргументы, необходимые для случая с параллельностью +fn recursive(matrix: &[&[i16]], from: Option, to: Option) -> i16 { + let size = matrix.len(); + + match size { + 0 => unreachable!(), + 1 => matrix[0][0], + 2 => matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0], + 3.. => (from.unwrap_or(0)..to.unwrap_or(size)) + .map(|c| { + ((-1i16).pow(c as u32)) + * matrix[0][c] + * recursive( + &matrix + .iter() + .skip(1) + .map(|row| { + row.iter() + .zip(0..) + .filter(|(_, i)| *i != c) + .map(|(n, _)| *n) + .collect::>() + }) + .collect::>>() + .iter() + .map(|r| r.as_slice()) + .collect::>(), + None, + None, + ) + }) + .sum(), + } +} + +fn parallel(matrix: &Matrix) -> i16 { + let (result_sender, result_receiver) = sync::mpsc::channel::(); + let matrix: &[&[i16]] = &matrix + .inner + .iter() + .map(|r| r.as_slice()) + .collect::>(); + + thread::scope(move |scope| { + let chunk_size = N / M; + let remainder = N % M; + + let mut chunks = Vec::new(); + + let mut start_col = 0; + for i in 0..M { + let end_col = start_col + chunk_size + if i < remainder { 1 } else { 0 }; + chunks.push((start_col, end_col)); + start_col = end_col; + } + + chunks.into_iter().for_each(|(start_col, end_col)| { + let sender = result_sender.clone(); + scope.spawn(move || sender.send(recursive(matrix, Some(start_col), Some(end_col))).unwrap()); + }); + }); + + result_receiver.into_iter().sum() +} + +// Замер времени выполнения, при этом размеры матриц и количество потоков известны на этапе компиляции +fn benchmark() { + let matrix = Matrix::::random(0); + + let start_time = time::Instant::now(); + parallel::(&matrix); + println!("Определитель для матрицы {0:>4}x{0:<4}: {1} сек ({2} потоков)", N, (time::Instant::now() - start_time).as_secs_f64(), M) +} + +fn main() { + benchmark::<8, 1>(); + benchmark::<8, 2>(); + benchmark::<8, 4>(); + benchmark::<8, 8>(); + + benchmark::<10, 1>(); + benchmark::<10, 2>(); + benchmark::<10, 4>(); + benchmark::<10, 8>(); + + benchmark::<11, 1>(); + benchmark::<11, 2>(); + benchmark::<11, 4>(); + benchmark::<11, 8>(); + + benchmark::<12, 1>(); + benchmark::<12, 2>(); + benchmark::<12, 4>(); + benchmark::<12, 8>(); +} -- 2.25.1