Ім'я файлу: Лаба6_оокп.pdf
Розширення: pdf
Розмір: 2451кб.
Дата: 11.03.2024
скачати
Тема Паралельна обробка даних
Мета: опрацювати методи підвищення швидкодії створюваних застосунків
Тема обрана для проектування №37: Автоматизація бізнес-процесів приватного видавництва
У лабораторній буде виконуватися запит на вибірку всіх даних, всіх книг,
для головної сторінки видавництва
Спершу. дослідження буде проводитися над 19 книгами. Тобто, в результаті отримується вибірка з 19 книг.
Результати часу виконання виводяться у консоль.
Почнемо з створення контролера для послідовної вибірки:Замір часу проводиться завдяки System.Diagnostics.Stopwatch.
Далі створимо контролер для паралельної вибірки:
Паралельність досягається завдяки AsParallel() - методу PLINQ (Parallel
LINQ ).
2

Відкриваю спершу сторінку та отримую результати щодо часу, скільки тривала вибірка:
3

Результати 11 та 26 ms відповідно. Послідовна вибірка дала гірший результату цьому випадку. Таким чином, для невеликих обсягів даних,
розпаралелювання дає гірше результати.
Далі, для перевірки часу на вибірку на багатьох записах, змінимо спеціально розроблене сідування для книг. Таким чином у таблиці книги в базі даних буде сідуватися 100 000 записів з назвами Sample Book 1 до Book 100 000 4

Сідування відбувається лише якщо в таблиці при запуску нічого немає
Сідування додається подібним чином у Program.cs
Тепер можна перейти до розгляду часу роботи послідовної та паралельної
вибірки:
5

Отримуємо такий час:
Порівнюючи результати простої вибірки на великих обсягах даних,
отримуємо 342 мс для послідовної, 290 мс для паралельної. Тож паралельна вибірка показала свою ефективність для великого обсягу даних.
6

Наостанок, розпаралелювання одного і того ж запиту з використанням різних технологій. Для цього створю наступні контролери:
PLINQ з можливістю обрати ступінь паралелізму, обираю кількість потоків
12 для мого процесору.
Наступний метод використовує бібліотеку Task Parallel Library (TPL).
Використовує Parallel.ForEach для паралельної обробки книг з бази даних.
Кожен об'єкт Book додається до parallelBooksList.
7

Багатопоточний метод з використанням Task Parallel Library (TPL).
Task.Run(() - це метод з бібліотеки TPL, який використовується для створення нового завдання і запуску йогов паралельному потоці пулу потоків.
8

Поглянемо на результати з використанням різних технологій:
Під час дослідження, найкращим результатом при багатьох експерементах був виявлений TPL (Task.Run Foreach). Загалом, інші методи мають схожі
результати, та розпаралелювання ефективніше ніж виконання послідовно
(268 - це результат послідовного виконання). Найгірше показав себе TPL
(Foreach) без Task.Run з результатом 222 мс, у деяких експеремнтах найгірше себе показував PLINQ з можливістю обирати кількість потоків
(12).
Таблиця 1. Порівняння методів розпаралелювання для простої вибірки великої кількості даних (100 000 книг)
Методи розпаралелювання
Час виконання, мс з можливістю обирати кількість потоків (12)
155
TPL (Foreach)
222
TPL (Task.Run Foreach)
27 9

Висновки:
За результатами лабораторної роботи, можна зробити деякі висновки щодо методів підвищення швидкодії створюваних застосунку, що є
корисним для всіх користувачів системи приватного видавництва , як працівникам, так і користувачам, адже підвищення швидкодії роботи системи важливе, особливо, за наявності великої кількості даних. Також підвищення швидкодії позитивно впливає на кількість переглядів книга це
є важливою частиною іміджу та складовою маркетингу приватного видавництва
Таким чином, для простої вибірки великого обсягу даних,
найефективнішими виявився метод TPL Task.Run (з використанням
Foreach). Для невеликого ж обсягу даних (19 книг) послідовна вибірка є
достатньо ефективною.
10

Джерела інформації:
1. Barbara Chapman, Gabriele Jost and Ruud van der Pas “Using OpenMP.
Portable
Shared Memory Parallel Programming” // MIT Press — 2007.
2. Mark J. Price. C# 11 and .NET 7 – Modern Cross-Platform Development
Fundamentals. 7th Edition. Copyright © 2022 Packt Publishing. ISBN:
978-1-80323-780-0 3. Настенко Д. В, Нестерко А. Б. Об’єктно-орієнтоване програмування.
Частина
4. Основи об’єктно-орієнтованого програмування на мові С навчальний посібник. К НТУУ «КПІ», 2016. 76 с

скачати

© Усі права захищені
написати до нас