multiprocessing.Pool. Как распараллелить задачу?

Elanyor

Новичок
Пользователь
Янв 6, 2021
1
0
1
1. Windows 10 Pro 10.0.19042.
2. Python 3.8.5 (из состава Anaconda 3).
3. pip list (ссылка на Telegra.ph, ибо в спойлер не влезло из-за ограничения количества символов).
4. Имеющийся код:
Python:
import random
k = 0.0
for i in range(500000):
    x = random.random()
    y = random.random()
    k += (x * x + y * y < 1.0)
print(4 * k / 500000)

Мне поставлена задача: написать программу для расчета числа Pi методом монте-карло с использованием нескольких процессов на основе multiprocessing.Pool. Первую часть задачи решил приведённым выше кодом.

Как распараллелить выполнение этой задачи с помощью multiprocessing.Pool?
import multiprocessing as mp. Дальше не знаю, что делать.

Подскажите, пожалуйста.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Как распараллелить выполнение этой задачи с помощью multiprocessing.Pool?
Вот пример:
Python:
import random
from multiprocessing import Pool


def calc(i):
    k = 0.0
    x = random.random()
    y = random.random()
    k += (x * x + y * y < 1.0)
    return k


if __name__ == '__main__':
    iterations = range(500000)
    pool = Pool(processes=4)
    x = sum(pool.map(calc, iterations))
    print(4 * x / 500000)
 
  • Мне нравится
Реакции: Elanyor

Форум IT Специалистов