Problem 1 (40p)
In this problem the goal is to calculate the mean and standard deviation of a large list of numbers by using Reduction as one of Collective Operations, see Lecture 11.
Copyright By PowCoder代写 加微信 powcoder
Consider $N = 256000$ random variables uniform on $[0, 1]$, call these $x_0, x_1, \dots, x_{N – 1}$.
Write an MPI program with $N=16$ processes that outputs the average and standard deviation of $x_0, x_1, \dots, x_{N – 1}$.
To simplify the problem, let one process, say Process 0, independently draws $N$ samples uniformly on $[0, 1]$.
How do you explain the results?
Instructions:
Your program should use MPI4PY and collective operations.
Save your program as 2020_spring_sol09_pr01.py and run it from the terminal as:
mpirun -n 16 python 2020_spring_sol09_pr01.py
Problem 2 (60p)
In this problem the goal is to demonstrate how one can use a Domain Decomposition and Collective Operations.
Consider the exponential distribution $X \sim \textrm{Exp}(1)$ with the unit mean. Find numerical approximations of moments of the exponential random variable.
That is, for a random variable $X$ with the distribution $f(x) = e^{-x}$ for $x \geq 0$, compute the first $15$ moments, where the $k$-th moment is defined as:
$$I_k = \int_{0}^{\infty} x^k f(x) dx.$$
Your program should use MPI parallel collective instructions, where the integration is performed in parallel over $N=16$ processes, over a finite range $[0, M)$, where $M=1000$, with $N = 16$ partitions and $1000$ increments per partition, see Lecture 10 and 11.
Provide evaluations of $J_1, J_2, \dots, J_{15}$, where $$J_k = \int_{0}^{M} x^k f(x) dx.$$
Instructions:
Save your program as 2022_sol09_pr02.py; and run it from the terminal as:
mpirun -n 16 python 2022_spring_sol09_pr02.py
Bonus Question (10 points):
What is the value of $I_k$, as a function of $k$? How can it be derived?
程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com