3.3 KiB
Шаблон отчёта по лабораторной работе
Скопируйте этот файл в папку своей лабораторной (например,
lab02_threads/отчёт.md), заполните и приложите графики.
- ФИО: ____________
- Группа: ____________
- Вариант: № ____ из
common/варианты.md - Задача: ____ (описание + параметры варианта)
- ОС / CPU / объём RAM: ____ (например: Windows 11, AMD Ryzen 5 5600, 16 ГБ)
1. Цель работы
(2–3 предложения своими словами)
2. Краткая теория
(5–10 предложений: какие механизмы использовались и почему именно они подходят/не подходят для вашей задачи. Переписывать методичку не нужно — сформулируйте понимание своими словами.)
3. Описание решения
- что разбивается на части и почему именно так;
- что выполняет каждый воркер;
- как собирается итог;
- какие средства синхронизации использованы и зачем (если использовались).
4. Результаты замеров
Таблица: время T(p) для p = 1, 2, 4 (…), ускорение S(p) = T(1)/T(p), эффективность E(p) = S(p)/p.
| Подход | T, c | S(p) | E(p) |
|---|---|---|---|
| последовательно | 1.00 | 1.00 | |
| потоки, p=2 | |||
| потоки, p=4 |
Как замерять: common/benchmark.py (time_call, минимум 3 повтора,
берётся лучшее время). Замеры — на спокойной машине, без фоновых программ.
5. Графики
- график ускорения S(p) —
save_speedup_plotизcommon/benchmark.py; - при необходимости — столбчатая диаграмма времени.
Вставьте сюда картинки:
6. Анализ
Ответьте письменно (по 2��5 предложений на пункт):
- Получено ли ускорение? На сколько? Совпадает ли с ожиданиями?
- Почему именно такая модель (потоки/процессы/async) подходит или не подходит вашей задаче?
- Наблюдались ли накладные расходы (запуск процессов, передача данных, синхронизация)? Где они видны в замерах?
- Что ограничивает дальнейший рост ускорения (GIL, память, число ядер, доля последовательного кода)?
7. Выводы
(3–6 предложений: что изучено, какие практические выводы сделаны.)
8. Ответы на контрольные вопросы
(Из конца методички. Полными предложениями, своими словами.)
