Форум сайта python.su
Мне поставлена задача: написать программу для расчета числа Pi методом монте-карло с использованием нескольких процессов на основе multiprocessing.Pool.
Первую часть задачи решил так:
import random k = 0.0 for i in range(50000): x = random.random() y = random.random() k += (x * x + y * y < 1.0) print(4 * k / 50000)
Офлайн
сначала вам нужно выделить в функцию операции которые можно распаралелить:
def f(n): x=.... ... return (x * x + y * y < 1.0)
from multiprocessing import Pool .... if __name__ == '__main__': pool = Pool( processes = 4) #количество процессов выбирайте сами.
res = poll.map(f, range(50000))
[code python][/code]
Отредактировано PEHDOM (Янв. 6, 2021 13:52:53)
Офлайн
import random from multiprocessing import Pool def f(n): x = random.random() y = random.random() return (x * x + y * y < 1.0) if __name__ == '__main__': pool = Pool(processes = 4) res = pool.map(f, range(50000)) print(res)
Офлайн
Последние две строчки кода нужно сдвинуть вправо на четыре пробела.
Офлайн