2
我在Julia中编写了一个可以在多个处理器之间分割某个函数的宏。我有以下几点:在Julia中输入函数的宏
macro parallel_calc(N::Int,proc::Int=4)
n=round(Int,N/proc);
proc_sum = @parallel (+) for i=1:proc
f(n)
end
return proc_sum/proc
end
的问题是我想写宏,以便
@parallel_calc f(n)
然后它就能自动分割我的处理器之间的工作。 Julia有没有办法编写一个以函数作为输入的宏?我试过在网上寻找,但我还没有找到任何可以帮助的东西。我也尝试使用
@everywhere f(n)
添加我的处理器后,但运行速度明显慢于上面定义的宏。我需要定义一个新的宏,在我的不同处理器之间平均分配计算负载(或几乎相同)。