← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 43: Прискорення важких обчислень через процеси

Технологія: Python

Номер лабораторної: 43 · Рівень: middle

Тема: Multiprocessing для CPU задач

Повний опис / сценарій лабораторної:

Meta: навчитися розподіляти обчислення між кількома процесами щоб обійти обмеження GIL.



Krok 1. Створити файл src/app/mp43.py.

Komandi: cd ~/python_lab1/src; touch app/mp43.py



Krok 2. Додати повільну функцію fib яка рахує число Фібоначчі рекурсивно.



Krok 3. Виміряти час виконання fib для одного параметра у звичайному режимі.

Komanda: python app/mp43.py



Krok 4. Додати використання multiprocessing Pool для паралельного обчислення fib для кількох значень.



Krok 5. Виміряти час виконання з пулом процесів і порівняти результат.



Krok 6. Додати обмеження кількості процесів за кількістю ядер.

Poyasnennya: використай os cpu count.



Krok 7. Продумати як передавати великі обєкти між процесами і чому це може бути дорогим.



Krok 8. Занотувати відмінності між multiprocessing і threading для CPU bound задач.



Krok 9. Додати просте логування ідентифікатора процесу у кожній задачі.



Krok 10. Mini zvit.

Zavdannya: опиши приклад реальної CPU задачі де multiprocessing виправданий.