Re: 不相干的程式做multi-thread有幫助嗎?
※ 引述《CharArray ( char[] )》之銘言:
: 前輩提到了overhead,multi-thread跟multi-process相比的overhead有哪些呢?
: 我知道synchronization是一個,但是如果是完全不相干的thread執行,
: 沒有共用的data,synchoroniztion似乎也不是overhead(?)
如果有兩個完全不相干的 thread (片段程式)要執行, 沒有相互干擾的
overhead 的辦法就是分開在兩部實體完全獨立無關的電腦上跑. 但稱為
multi-thread 卻是指在同一部電腦上跑. 這部電腦是多組 register set
的 RISC , 還是多個 functional pipeline unit , 還是多個 program
counter 的多核, 甚至是共用 bus 及記憶體的多處理機系統. 在實體上
就有不同程度的共用硬體資源成份. 有了共用資源, 自然就會有互斥使用
的這一類型同步問題. 即使沒有互斥同步也會有共用部份有限的 register
與 cache 問題. 一旦是不考量同步的任意交錯輪換使用, 就會有 save/
restore 問題, 不必要的 save/restore 也就是一種 overhead ! 打斷
prefetch 與 pipleline buffer 也是另一種 overhead.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.4.12
推
11/12 10:33, , 1F
11/12 10:33, 1F
→
11/12 10:33, , 2F
11/12 10:33, 2F
討論串 (同標題文章)