小编pan*_*ein的帖子

Julia 中的并行实现比串行慢

为什么在下面的 Julia 代码中,并行实现比串行运行慢?

using Distributed

@everywhere function ext(i::Int64)
   callmop = `awk '{ sum += $1 } END { print sum }' infile_$(i)`
   run(callmop)
end

function fpar()
   @sync @distributed for i = 1:10
      ext(i)
   end
end

function fnopar()
   for i = 1:10
      ext(i)
   end
end

val, t_par, bytes, gctime, memallocs = @timed fpar()
val, t_nopar, bytes, gctime, memallocs = @timed fnopar()

println("Parallel: $(t_par) s. Serial: $(t_nopar) s")  
# Parallel: 0.448290379 s. Serial: 0.028704802 s
Run Code Online (Sandbox Code Playgroud)

这些文件infile_$(i)包含一列实数。经过一些研究,我遇到了处理类似问题的这篇文章另一篇文章)。不过,如果考虑到 …

parallel-processing performance external-process julia

6
推荐指数
1
解决办法
217
查看次数