我使用GLPK與朱莉婭,並使用由spencerlyon書面朱莉婭 - 發送GLPK.Prob到工人
sendto(2, lp = lp) #lp is type GLPK.Prob
然而methods,我似乎無法派遣工之間的類型GLPK.Prob。每當我試圖發送一個類型GLPK.Prob,它就會被「發送」,並呼籲
remotecall_fetch(2, whos)
確認GLPK.Prob被罰
當我試圖通過調用
解決出現的問題simplex(lp)
錯誤
GLPK.GLPKError("invalid GLPK.Prob")
出現。我知道GLPK.Prob心不是原來的無效GLPK.Prob,如果我決定明確構建在另一名工人,工人FX 2 GLPK.Prob類型,調用單純運行就好
這是一個問題,因爲GLPK.Prob是從一個自定義類型的礦產生成的,這是一個很重的方面
tl; dr是否可能有一些類型不能在工人之間正確發送?
更新
我現在看到,在調用
remotecall_fetch(2, simplex, lp)
將返回上面GLPK錯誤
而且我剛剛注意到,GLPK模塊已經得到了一個名爲
方法GLPK.copy_prob(GLPK.Prob, GLPK.Prob, Int)
但是deepcopy的(當然不要複製)不會工作拷貝GLPK.Prob
當實例
function create_lp()
lp = GLPK.Prob()
GLPK.set_prob_name(lp, "sample")
GLPK.term_out(GLPK.OFF)
GLPK.set_obj_dir(lp, GLPK.MAX)
GLPK.add_rows(lp, 3)
GLPK.set_row_bnds(lp,1,GLPK.UP,0,100)
GLPK.set_row_bnds(lp,2,GLPK.UP,0,600)
GLPK.set_row_bnds(lp,3,GLPK.UP,0,300)
GLPK.add_cols(lp, 3)
GLPK.set_col_bnds(lp,1,GLPK.LO,0,0)
GLPK.set_obj_coef(lp,1,10)
GLPK.set_col_bnds(lp,2,GLPK.LO,0,0)
GLPK.set_obj_coef(lp,2,6)
GLPK.set_col_bnds(lp,3,GLPK.LO,0,0)
GLPK.set_obj_coef(lp,3,4)
s = spzeros(3,3)
s[1,1] = 1
s[1,2] = 1
s[1,3] = 1
s[2,1] = 10
s[3,1] = 2
s[2,2] = 4
s[3,2] = 2
s[2,3] = 5
s[3,3] = 6
GLPK.load_matrix(lp, s)
return lp
end
這將返回一個LP :: GLPK.Prob()將返回733.33運行
時simplex(lp)
result = get_obj_val(lp)#returns 733.33
但是,這樣做
addprocs(1)
remotecall_fetch(2, simplex, lp)
將導致在上面的錯誤
你能發佈一個可重複的例子嗎? –