Performance 朱莉娅:并行代码比顺序代码慢

Performance 朱莉娅:并行代码比顺序代码慢,performance,parallel-processing,julia,Performance,Parallel Processing,Julia,我试图使用并行化来加速Julia中的代码,但是如果没有并行化(串行for循环),我的代码运行得更快。下面,我将遵循Julia文档中的简单示例,串行代码比并行代码快得多。(添加两个矩阵q和u) 使用这些函数,我使用@time来比较计算时间 q = SharedArray(Float64, (5,10000)) u = SharedArray(Float64, (5,10000)) advection_serial!(q, u) advection_shared!(q, u) # use @ti

我试图使用并行化来加速Julia中的代码,但是如果没有并行化(串行for循环),我的代码运行得更快。下面,我将遵循Julia文档中的简单示例,串行代码比并行代码快得多。(添加两个矩阵q和u)

使用这些函数,我使用@time来比较计算时间

q = SharedArray(Float64, (5,10000))
u = SharedArray(Float64, (5,10000))

advection_serial!(q, u)
advection_shared!(q, u)  # use @time after running both once
然后我得到了一些奇怪的结果

1) 串行代码大约比并行代码快40倍(添加3个工作线程后:0.000576秒vs.0.023328秒)

2) 当我添加更多的工作人员时,并行代码会变慢


我做错什么了吗?在这个例子中,我是否可以加快并行代码的速度?

并行计算的开销很大。除非每个员工都在做相当大的工作量,否则通常不会期望提速。
q = SharedArray(Float64, (5,10000))
u = SharedArray(Float64, (5,10000))

advection_serial!(q, u)
advection_shared!(q, u)  # use @time after running both once