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)
添加我的處理器後,但運行速度明顯慢於上面定義的宏。我需要定義一個新的宏,在我的不同處理器之間平均分配計算負載(或幾乎相同)。