pmap数据格式(Julia 1.1.0)

时间:2019-03-08 04:26:05

标签: output julia pmap

我有一个使用pmap运行的功能。我希望输出是向量-p-其条目是并行运行的每次迭代的输出。为了说明,代码如下:

@everywhere function addo(mc,mcf)

p = zeros(Int64,mcf) ;

p[mc] = mc ;

return p 

end 

pmap(mc -> addo(mc,mcf),1:1:mcf) ;

我得到的输出是

100-element Array{Array{Int64,1},1}:
 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  
 [0, 2, 0, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  
 [0, 0, 3, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 0, 0, 0]  
 ⋮                                                                
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 98, 0, 0] 
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 0, 99, 0] 
 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  0, 0, 0, 0, 0, 0, 0, 0, 0, 100]

相反,我需要这样的东西,p = [1,2,3,4,...,100];

如何获得所需格式的输出?

1 个答案:

答案 0 :(得分:0)

pmapmap类似,将转换函数mc -> addo(mc, mcf)应用于集合1:1:mcf中的每个元素。代码中的问题是,对于集合中的每个元素,您正在创建一个大小为mcf的新向量,并且总体结果成为您在每次转换中创建的数组的 array ,而您想要的是pmap的大小为mcf。因此,对于集合中的每个元素,您应该只返回一个元素。 pmap已经为您提供了一个集合,将每个转换的结果分组。

@everywhere function addo(mc)
    return mc
end 

p = pmap(mc -> addo(mc), 1:1:mcf)

这将给您p = [1,2,3,4,...,100]