summaryrefslogtreecommitdiff
path: root/hpc/mlti_process.py
blob: 4a129c4c381c9b34524fc59a60e46d0ebcfd9a0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import os
from multiprocessing import Process, Pool, Manager
from random import random


def monte_carlo_pi(i, n=5000_0000):
    print('epoch: {}'.format(i))
    cnt = 0
    for i in range(n):
        x, y = random(), random()
        if x**2 + y**2 <= 1:
            cnt += 1
    return 4*cnt/n


if __name__ == '__main__':
    pool = Pool(os.cpu_count()//2)
    pool.map(monte_carlo_pi, range(10))