← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
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 виправданий.