Научиться использовать многопроцессность как основу параллельного программирования с помощью модуля multiprocessing
- Написать программу, перемножающую две матрицы поэлементно. Элементы матрицы-произведения должны вычисляться в несколько потоков.
- Программа должна читать две матрицы из исходных файлов. Матрица-произведение также должна записываться в файл.
- Используйте пул процессов, чтобы распределять вычисления между определенным заранее количеством процессов, не зависящим от размеров матрицы.
- Модифицируйте программу, чтобы элементы результирующей матрицы записывались в промежуточный файл сразу по факту их вычисления.
- Модифицируйте программу таким образом, чтобы она сама определяла количество необходимых параллельных потоков.
- Модифицируйте программу таким образом, чтобы одна часть программы генерировала случайные квадратные матрицы заданной размерности, а другая - перемножала их по мере генерации. Протестируйте асинхронность работы программы. Реализуйте механизм остановки процесса перемножения.

