From 678fab50280b647d95213a9695d07c49542696f2 Mon Sep 17 00:00:00 2001 From: zhang Date: Sat, 21 May 2022 14:23:49 +0800 Subject: 0521 --- hpc/demo.py | 6 ------ hpc/mlti_process.py | 18 ++++++++++++++++++ hpc/mlti_threads.py | 33 +++++++++++++++++++++++++++++++++ hpc/mpi_demo.py | 6 ++++++ 4 files changed, 57 insertions(+), 6 deletions(-) delete mode 100644 hpc/demo.py create mode 100644 hpc/mlti_process.py create mode 100644 hpc/mlti_threads.py create mode 100644 hpc/mpi_demo.py (limited to 'hpc') diff --git a/hpc/demo.py b/hpc/demo.py deleted file mode 100644 index 0adfe17..0000000 --- a/hpc/demo.py +++ /dev/null @@ -1,6 +0,0 @@ - -from mpi4py import MPI - -comm = MPI.COMM_WORLD -rank = comm.Get_rank() -size = comm.Get_size() diff --git a/hpc/mlti_process.py b/hpc/mlti_process.py new file mode 100644 index 0000000..4a129c4 --- /dev/null +++ b/hpc/mlti_process.py @@ -0,0 +1,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)) diff --git a/hpc/mlti_threads.py b/hpc/mlti_threads.py new file mode 100644 index 0000000..9eb73ac --- /dev/null +++ b/hpc/mlti_threads.py @@ -0,0 +1,33 @@ +import os +from multiprocessing import Process, Pool, Manager +from random import random +from threading import Thread +import os + + + +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)) + + thread_list = [] + n_threads = 10 + for i in range(n_threads): + t = Thread(target=monte_carlo_pi, args=(i, )) + thread_list.append(t) + + for t in thread_list: + t.start() + + for t in thread_list: + t.join() diff --git a/hpc/mpi_demo.py b/hpc/mpi_demo.py new file mode 100644 index 0000000..0adfe17 --- /dev/null +++ b/hpc/mpi_demo.py @@ -0,0 +1,6 @@ + +from mpi4py import MPI + +comm = MPI.COMM_WORLD +rank = comm.Get_rank() +size = comm.Get_size() -- cgit v1.2.3