看板 Soft_Job 關於我們 聯絡資訊
※ 引述《hkahka ()》之銘言: : 請問有人是專門設計多處理器用的程式軟體嗎?? : 跟一般設計單處理器使用的有什麼不同啊?? 小弟學淺,以下為不才看法: 現在作業系統很聰明,基本上一個程式都會有多個processors 在處理。 如果程式要用到的計算沒辦法拆開(有相依性),系統會用單一CPU處理。 如果要讓程式適合多處理器,務必要: 一、多執行緒的寫法,單一執行緒的程式,os只會用單一CPU計算。 執行緒的個數應為CPU 的threading的倍數會有最高效率。(我研究所的研究題目) 二、網路及IO或其他可平行處理的程序,一定要寫成「非用步」運算。 os會自動用不同的processor處理。 例如,程式要網路傳送封包後等回應,不應該讓程式hold在那,而是另開threading。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.38.99.232
khalid:很有趣的題目,不過你實驗很難做吧?就算你知道你的程式有多 07/17 02:23
khalid:少thread,整個系統可能還有很多不同的thread,變數很多, 07/17 02:24
khalid:scheduler運作方式也有很大影響吧. 07/17 02:25
imagefish:Asynchronous ?? 非用步 <==應該是非同步吧?? 07/17 10:09
iincho:非同步那段錯很大,真的是這樣單CPU的AIO根本就沒差... 07/17 10:36
remmurds:如果是寫運作在VM上的程式(例如Java或.Net) 07/17 11:19
remmurds:老實說這應該就是VM在負責的問題嚕 07/17 11:19
iincho:嗯,請介紹一個會是自動幫你平行處理的VM系統謝謝... 07/17 13:23
remmurds:樓上真酸 目前當然沒這東西 我只是在表達我的想法而已 07/17 15:46
remmurds:希望是我會錯意了 07/17 15:46
zzwwzz:請問這個領域在業界用得上嗎? 07/18 06:21
ledia:可以提高效率一定用得上呀 07/18 12:47
airzone:說到concurrent 記得試試 Erlang 非常有趣的語言 07/18 14:33
nagual07:IO bound的程序, 其實通常只要單個程序便已足夠..會有須 07/18 23:31
nagual07:要另開thread..通常是比較好寫,而不是真的開thread就能加 07/18 23:33
nagual07:高效率..以網路來說, 網路晶片只有一個, 考慮dma和 07/18 23:35
nagual07:interrupt..就可知道..dma做完再通知程序即可...根本不須 07/18 23:36
nagual07:等在那..當然這個跟OS如何提供這種CPU和IO並行的機制有關 07/18 23:38
lpoijk:可以提高效率當然用的上 請參閱Linux Kernel 2.6.30 07/23 01:27
lpoijk:的Change Log, 會waitting的API都盡量改成async 07/23 01:28