Files
parallel-programming/common/варианты.md
T
2026-10-07 13:06:47 +05:00

4.3 KiB
Raw Blame History

Варианты заданий (20 вариантов)

Вариант = номер студента в журнале (1–20). Если студентов больше 20 — вариант N = (N - 1) % 20 + 1.

Каждый вариант состоит из:

  1. CPU-задача (из bank_задач.md) с размером данных по уровню S/M/L;
  2. I/O-нагрузка — одинаковая для всех по смыслу: N_items «запросов», каждый имитируется задержкой delay = 0.05 c (common/tasks.py: io_fetch);
  3. Список p — количества потоков/процессов для замеров T(p).
Вариант Задача Уровень Размер данных I/O (items × delay) p для замеров
1 1. Умножение матриц S n = 140 24 × 0.05 c 1, 2, 4
2 2. π методом Монте-Карло M 4 000 000 бросков 48 × 0.05 c 1, 2, 4
3 3. Интегрирование L 10 000 000 отрезков, [0, 10] 96 × 0.05 c 1, 2, 4, 8
4 4. Простые числа S M = 1 000 000 24 × 0.05 c 1, 2, 4
5 5. N ферзей M N = 11 48 × 0.05 c 1, 2, 4
6 6. Частотный анализ L 400 000 строк 96 × 0.05 c 1, 2, 4, 8
7 7. Размытие (box blur) S 600 × 600 24 × 0.05 c 1, 2, 4
8 8. Хеширование SHA-256 M 600 000 строк 48 × 0.05 c 1, 2, 4
9 9. Сортировка слиянием L 4 000 000 чисел 96 × 0.05 c 1, 2, 4, 8
10 10. Игра «Жизнь» S 500 × 500, 20 поколений 24 × 0.05 c 1, 2, 4
11 1. Умножение матриц M n = 180 48 × 0.05 c 1, 2, 4
12 2. π методом Монте-Карло L 8 000 000 бросков 96 × 0.05 c 1, 2, 4, 8
13 3. Интегрирование S 3 000 000 отрезков, [0, 10] 24 × 0.05 c 1, 2, 4
14 4. Простые числа M M = 2 000 000 48 × 0.05 c 1, 2, 4
15 5. N ферзей L N = 12 96 × 0.05 c 1, 2, 4, 8
16 6. Частотный анализ S 100 000 строк 24 × 0.05 c 1, 2, 4
17 7. Размытие (box blur) M 900 × 900 48 × 0.05 c 1, 2, 4
18 8. Хеширование SHA-256 L 1 200 000 строк 96 × 0.05 c 1, 2, 4, 8
19 9. Сортировка слиянием S 1 000 000 чисел 24 × 0.05 c 1, 2, 4
20 10. Игра «Жизнь» M 700 × 700, 30 поколений 48 × 0.05 c 1, 2, 4

Уровни размеров (справочно)

Задача S M L
1. Матрицы 140 180 220
2. π Монте-Карло 2 000 000 4 000 000 8 000 000
3. Интегрирование 3 000 000 6 000 000 10 000 000
4. Простые числа 1 000 000 2 000 000 4 000 000
5. N ферзей 10 11 12
6. Частотный анализ 100 000 200 000 400 000
7. Box blur 600 900 1200
8. Хеширование 300 000 600 000 1 200 000
9. Сортировка 1 000 000 2 000 000 4 000 000
10. «Жизнь» 500×500, 20 пок. 700×700, 30 пок. 900×900, 40 пок.

Как получить свои параметры в коде

from common.tasks import get_variant

v = get_variant(13)          # ваш номер варианта
print(v["task_name"])        # "integrate"
print(v["cpu_params"])       # {"a": 0.0, "b": 10.0, "n": 3_000_000}
print(v["io"])               # {"items": 24, "delay": 0.05, "concurrency": 4}

Правило добросовестности

Параметры варианта менять нельзя (иначе сравнение T(p) между студентами теряет смысл). Если ваша машина слишком медленная для уровня L — согласуйте с преподавателем переход на уровень M и отразите это в отчёте.