Python 朱莉娅酒店

Python 朱莉娅酒店,python,performance,parallel-processing,julia,distributed,Python,Performance,Parallel Processing,Julia,Distributed,我试图通过同步DistributedArray的本地部分来并行运行这段代码,以便第一个进程的数组的第一行是200,而不是第二个数组的第一行,有人能帮忙吗 using Distributed addprocs(2) @everywhere using DistributedArrays @everywhere using LinearAlgebra n=10 Z=zeros(n,n) #Z[1,:].=200 #Z[:,end].=200 Z=distribute(Z; dist=(2,1)) K

我试图通过同步DistributedArray的本地部分来并行运行这段代码,以便第一个进程的数组的第一行是200,而不是第二个数组的第一行,有人能帮忙吗

using Distributed
addprocs(2)
@everywhere using DistributedArrays
@everywhere using LinearAlgebra
n=10
Z=zeros(n,n)
#Z[1,:].=200
#Z[:,end].=200
Z=distribute(Z; dist=(2,1))
K=ones(n,1)
#K[1,:].=200
#K[end,:].=200
K=distribute(K; dist=(2,1))
#(i+1) % 2)+1,j

@sync @distributed for x in 1:nworkers()
localpart(Z)[1,:].=200
    @sync @distributed for i in 2:length(localindices(Z)[1])
        for j in 1:length(localindices(Z)[2])
            localpart(Z)[i,j]=10*log(myid())+localpart(K)[i]
        end
    end
    end
end
Z
试用

if DistributedArrays.localpartindex(Z) == 1; localpart(Z)[1,:].=200;end
此外,您不应该嵌套
@分布式
循环。而是使用一个参数,例如
xi
,使
x
i
的值在
xi
的基础上进行计算

if DistributedArrays.localpartindex(Z) == 1; localpart(Z)[1,:].=200;end

此外,您不应该嵌套
@分布式
循环。而是使用一个参数,例如
xi
,这样
x
i
的值是基于
xi

计算出来的。我不明白你想做什么。你可以展示一个工作的非分布式版本,然后尝试并行化它吗?我已经有了一个普通版本,现在我正在尝试将代码并行化,这是一个正常的版本,工作正常。看看,它们可能更适合你想做的事情。因为我在做覆盆子俱乐部的工作,我不明白你想做什么。你可以展示一个工作的非分布式版本,然后尝试并行化它吗?我已经有了一个普通版本,现在我正在尝试将代码并行化,这是一个正常的版本,工作正常。看看,它们可能更适合你想做的事情共享阵列不会工作,因为我正在处理树莓集群