This material is part of the course Practical Introduction to Parallel Programming and meant for educational purposes only.
Background
The area of a circle of radius \(R\) is \(\pi R^2\), the area of a square with side length \(2R\) is \(4R^2\). If the circle is inscribed inside the square then the ratio of both areas is \(\pi/4\).
Monte Carlo method
If we pick \(N\) points at random inside the square and count the number of points that are inside the circle (\(M\)) then we can compute the approximation \(\pi\approx 4M/N\).
Functions in minimpi.h
/* Initialization of parallel communication */ void init() /* Finalization of parallel communication */ void finalize() /* Get the total number of processors involved */ int get_total_proc_number() /* Get the number of the current processor */ int get_my_proc_number() /* Send an integer to processor dest */ /* value IN Integer to be sent. */ /* dest IN Processor number to which the integer is sent. */ void send_int ( int value, int dest ); /* Receive an integer from processor source */ /* value OUT Pointer to the integer to be received. */ /* source IN Processor from which the message is received. */ void recv_int ( int* value, int source );