hello im trying to to a parallel compuing but it is not workig can someone please correct this code for me thans? |
---|
using Distributed
addprocs(1)
nprocs()
procs()
workers()
nworkers()
@everywhere using DistributedArrays
@everywhere using SharedArrays
@everywhere using LinearAlgebra
using Plots
n=100
@everywhere function Creating_Matrix_A_b(n)
A = dzeros((n-1)^2,(n-1)^2)
#write diagonal block matrices
@distributed (+) for k=1:n-1
@distributed (+) for l=1:n-1
A[CartesianIndex.((k-1)*(n-1)+l,(k-1)*(n-1)+l)] .= 4
end
@distributed (+) for l=2:n-1
A[CartesianIndex.((k-1)*(n-1)+l-1,(k-1)*(n-1)+l)] .= -1
A[CartesianIndex.((k-1)*(n-1)+l,(k-1)*(n-1)+l-1)] .= -1
end
end
#write upper/lower diagonal block matrices
@distributed (+) for k=2:n-1
for l=1:n-1
A[CartesianIndex.((k-2)*(n-1)+l,(k-1)*(n-1)+l)] = -1
A[CartesianIndex.((k-1)*(n-1)+l,(k-2)*(n-1)+l)] = -1
end
end
b = 1/n^2 * ones((n-1)^2,1)
return [A,b]
end
(A,b)
#Solve Poisson-equation using dense matrix
#solve linear system
z = A\b
#add boundary values for graphical output
Z = [zeros(1,n+1); [zeros(n-1,1) reshape(z,(n-1,n-1)) zeros(n-1,1)]; zeros(1,n+1)]
##add boundary values for graphical output
#Z=zeros(n+1,n+1);
#for k=1:n-1
#for l=1:n-1
#Z[CartesianIndex.(k+1,l+1)] .= z[(k-1)*(n-1)+l]
#end
#end
#plot result
h = 1.0/n
x = collect(0:h:1)
y = collect(0:h:1)
pyplot()
surface(x,y,Z,)
title!(“Solution of Poisson Equation”)
xlabel!(“x”)
ylabel!(“y”)[quote=“hyacykcharel, post:1, topic:41659, full:true”]