我想并行化一个名为渐进式对冲的优化分解算法。这种优化存储在一个名为PH的函数上,该函数接收模型的参数,一些参数是矩阵,但PH只需要该矩阵中的一个向量。
for s = 1:nS
res = PH(k,s,data,Lines,Ag,Gx,Pmax[:,s],Prmax[:,s],COpe[:,s])
push!(data,res)
end所以PH只需要一个来自Pmax,Prmax和COpe的向量。
为了并行化,我试着这样做。
pmap(s -> PH(k,s,data,Lines,Ag,Gx,Pmax[:,s],Prmax[:,s],COpe[:,]),1:nS)但我得到的是:
The applicable method may be too new: running in world age 21846, while current world is 21965.我使用的是Julia0.6,也许我的编程方式来自于旧版本。
有什么想法吗?
发布于 2017-11-16 04:27:31
我最近在0.6版本的pmap()中遇到了类似的问题。尝试将pmap(f,c...)中的参数f赋给一个具体的函数,即,
createPH(s) = PH(k,s,data,Lines,Ag,Gx,Pmax[:,s],Prmax[:,s],COpe[:,])
pmap(createPH,1:nS)这为我解决了这个问题。(还要注意,在0.6.0中会生成警告,而不是world age错误)
https://stackoverflow.com/questions/46750271
复制相似问题