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

67 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Варианты заданий (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 пок. |
## Как получить свои параметры в коде
```python
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 и отразите это в отчёте.