# 159.735 Course Programming ,Help With program Programming,C++ ProgrammingDebug Help With Processing| R Programming

159.735 Assignment 1
Parellel Random Number Generation
Monte Carlo methods using random numbers are used extensively in numerical
computation and analysis. For this assignment, write an MPI program
to implement the parallel computation of the value of π by simulating the
throwing of darts on an imaginary dartboard. Evaluate the performance of
your program by trying it on a range of available nodes and processors.
Consider a unit circle, ie of radius 1, and the smallest bounding box that
fully encloses the circle with (x, y) values each ranging from -1 to +1. Use
a suitable random number generator to sample random (x, y) values in this
range, and count the number of times the coordinates fall within the circle.
The ratio of this count to the total number of random positions that were
used is equal to the ratio of the area of the circle to the area of the box—from
whence the value of π can be calculated.
The following linear congruential generator is a suitable random number
generator:
ni+1 = (ani + c) mod m
where a = 1664525, m = 232, and c = 1013904223. Your program MUST
make use of the full range of random numbers that are available.
You will need to decide upon a strategy for generating random numbers and
to ensure that all processes get their random numbers from the same pool.
Doing this in a parallel computation environment is the main purpose of this
exercise. You should use the “leapfrog” method as described in the lectures.
Submission
Please submit your C or C++ source code together with a brief report which