Files
parallel-programming/lab00_intro/методичка.md
T
2026-10-07 13:06:47 +05:00

4.7 KiB

Лабораторная работа 0. Подготовка окружения

Время на работу: 1 пара. Оценка: зачёт/не зачёт.

Цель работы

Подготовить рабочее окружение и убедиться, что все механизмы параллельного программирования доступны на вашей машине — до того, как вы начнёте основную лабораторную.

Теория (минимум)

Виртуальное окружение (venv)

Виртуальное окружение — изолированная папка с собственной копией Python и своим набором библиотек. Оно нужно, чтобы зависимости курса не конфликтовали с другими проектами. Активированное окружение видно в терминале по префиксу (.venv).

Почему не Google Colab / онлайн-интерпретаторы

Параллельность — это про реальные ядра CPU и реальную ОС. В облаке вы не получите ни честного числа ядер, ни контроля над фоновыми процессами, ни Windows-специфики spawn. Работаем локально.

Модель памяти Python: всё передаётся по ссылке

В Python переменные — ссылки на объекты. Для потоков это значит: все потоки одного процесса видят одни и те же объекты — отсюда гонки данных (лаба 5). Для процессов это значит: каждый процесс получает свою копию данных (через pickle) — отсюда накладные расходы (лаба 4).

Задание

Шаг 1. Установите Python 3.10+

Windows: python.org → Downloads → «Windows installer (64-bit)». Обязательно отметьте «Add python.exe to PATH» на первом экране установщика.

Проверка (новое окно терминала):

python --version

Шаг 2. VS Code

Установите VS Code и расширение Python (издатель Microsoft). Откройте папку курса: File → Open Folder. Терминал: Terminal → New Terminal (или Ctrl+`).

Шаг 3. Виртуальное окружение и зависимости

В терминале VS Code из корня курса:

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

macOS/Linux: source .venv/bin/activate.

Если VS Code спросит интерпретатор — выберите .\.venv\Scripts\python.exe.

Шаг 4. Git (кратко, если ещё не знакомы)

git init
git add .
git commit -m "lab 0: окружение готово"

Дальше фиксируйте прогресс коммитами — это история вашей работы (и аргумент в спорах о списывании).

Шаг 5. Проверка окружения

python lab00_intro\check_env.py

Скрипт проверит версию Python, наличие библиотек, число ядер CPU и работоспособность потоков, процессов и asyncio. Все проверки должны быть [OK].

Шаг 6. Свой вариант

from common.tasks import get_variant
print(get_variant(<ваш номер в журнале>))

Запишите параметры — они понадобятся во всех следующих лабораторных.

Контрольные вопросы

  1. Зачем нужно виртуальное окружение? Что произойдёт, если его не создавать?
  2. Чем процесс отличается от потока? (Подсказка: общая память.)
  3. Почему для этого курса важна работа на локальной машине, а не в облаке?

Что сдаётся

  • Скриншот вывода check_env.py (все проверки [OK]);
  • короткий ответ на контрольные вопросы (можно в чате при сдаче).

Критерии зачёта

Пункт Баллы
Окружение развёрнуто, check_env.py всё [OK] 1
Ответы на контрольные вопросы 1