[julia-users] Re: Calculating pi using parallel computing

2016-07-18 Thread 'Greg Plowman' via julia-users
Maybe something like this:

See http://docs.julialang.org/en/release-0.4/manual/parallel-computing/ 
(particularly 
section Parallel Map and Loops)

@everywhere f(x) = 4/(1+(x*x))

function calc_pi(n)
a,b = 0,1
dx = (b-a)/n
sumfx = @parallel (+) for x in a:dx:b
f(x)
end
return sumfx * dx
end

function test_pi()
for e in 1:9
n = 10^e
pi_approx = calc_pi(n)
@printf("%12d %20.15f %20.15f\n", n, pi_approx, pi_approx - pi)
end
end



On Monday, July 18, 2016 at 2:50:06 PM UTC+10, Arundhyoti Sarkar wrote:

> Hi Guys,
>
> I am trying to run Julia on a cluster for the first time. Essentially I 
> want to calculate the value of Pi by numerical integration. integration of 
> 4/(1+x*x) from 0 to 1 = pi 
> I have written this piece of code but I am unable to parallelize it 
> properly. 
>
> ```
> n=100 # larger the value, larger the number of pieces for integration, 
> greater the precision.
> @everywhere f(x) = 4/(1+(x*x))
> a,b = 0,1
> delta = (b-a)/n
> xs = a+ (0:n-1) * delta
> pieces = pmap(f,xs)
> r1 = @spawn cpi_P.calsum(pieces[1:5])
> r2 = @spawn cpi_P.calsum(pieces[6:end])
>
> println("Process 1 : ",fetch(r1)* delta)
> println("Process 2 : ",fetch(r2)* delta)
> print("PI = ")
> ```
> cpi_P.jl is a module containing the following
> ```
> module cpi_P
> export calsum
>
>   function calsum(fx)
> sum = 0
> for i in 1:size(fx,1)
>sum = sum + fx[i]
> end
> return sum
>end
>
> end
> ```
> The above code works when the number of processes are 2. I want to 
> generalize this to N processes where I can assign N set of pieces for 
> integration using @parallel. Problem is that calsum is dependent on the 
> limits and the cpi_P module needs to accept fx and the limits as inputs. 
>
> I am a novice. Any kind of help will e deeply appreciated. Thanks!
>
>

[julia-users] Re: Calculating pi using parallel computing

2016-07-18 Thread David van Leeuwen
Hello Arundhyoti,

This is probably the answer you were looking for, but a while ago I 
collected several algorithms for computing π.  I just updated these to 
Julia-0.4 here . 

On Monday, July 18, 2016 at 6:52:25 AM UTC+2, Arundhyoti Sarkar wrote:
>
>  The value of n is 10 in the above program
> It can be increased for precision.