Re: accmulation

看板CSSE (電腦科學及軟體工程)作者 (還沒想到)時間20年前 (2005/05/31 05:23), 編輯推噓3(3011)
留言14則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《Eventis (何逸凡)》之銘言: : ※ 引述《ikjhyu (還沒想到)》之銘言: : : 若有一個程式 : : in sum=0; : : for(int i=0; i<20;i++) : : { : : sum=sum+value(sum); : : } : : int value(int)是一個子函數 : : 會回傳一個值, 然後程式會繼續累加(或叫疊代) : : 請問這樣的程式可否平行計算? : : 即每個iteration 算一個值以上? : sum(i+1) = sum(i) + value(sum(i)) : sum(i) : \ \ : \ \ : \ value(sum(i)) : \ / : \ / : sum(i+1) : \ \ : \ \ : \ value(sum(i+1)) : \ / : \ / : sum(i+2) ㄟ...看不懂 為什麼這樣每次iteration 可以算兩次sum的值? 這個問題好像如果多一點value的資訊可以用的話 不知道有沒有辦法.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.211.123

61.230.226.190 05/31, , 1F
如果不知道 value() 的性質, 考慮一般化的結果
61.230.226.190 05/31, 1F

61.230.226.190 05/31, , 2F
那就不可能辦到
61.230.226.190 05/31, 2F

61.230.226.190 05/31, , 3F
離散動態系統是很難捉摸的, 甚至會出現渾沌現象
61.230.226.190 05/31, 3F

61.62.49.43 05/31, , 4F
不是算兩個值喔XD
61.62.49.43 05/31, 4F

61.62.49.43 05/31, , 5F
我只是把dependency標出來而已^^
61.62.49.43 05/31, 5F

61.62.49.43 05/31, , 6F
在critical path上有serial特性的話
61.62.49.43 05/31, 6F

61.62.49.43 05/31, , 7F
基本上就像樓上的前輩說的,那是不可能辦到的.
61.62.49.43 05/31, 7F

61.62.49.43 05/31, , 8F
從上面的圖就知道,把sum(i)拿掉,圖就disconnect
61.62.49.43 05/31, 8F

61.62.49.43 05/31, , 9F
因此不可能在未知sum(i)的情況計算sum(i+1)
61.62.49.43 05/31, 9F

61.62.49.43 05/31, , 10F
或者更小心地說,在計算sum(i+1)時,
61.62.49.43 05/31, 10F

61.62.49.43 05/31, , 11F
也能算出中間的結果sum(i)
61.62.49.43 05/31, 11F

61.62.49.43 05/31, , 12F
如果沒辦法把value內部拆開,圖形重建.
61.62.49.43 05/31, 12F

61.62.49.43 05/31, , 13F
那就只能在這邊Orz了XD
61.62.49.43 05/31, 13F

61.230.226.190 05/31, , 14F
樓上的才是前輩, 我只是小小小咖
61.230.226.190 05/31, 14F
文章代碼(AID): #12cuH9WM (CSSE)
討論串 (同標題文章)
本文引述了以下文章的的內容:
20年前, 05/30
完整討論串 (本文為第 3 之 3 篇):
3
14
20年前, 05/31
20年前, 05/30
20年前, 05/29
文章代碼(AID): #12cuH9WM (CSSE)