Programming 板


LINE

※ 引述《JohnLinq (林約翰)》之銘言: : 冒昧請教幾個問題。 : ※ 引述《ggg12345 (ggg)》之銘言: : > 一般使用高階語言程式與高階API者應該不會處理的這麼細. 這已 : > 經是類似粗放與細耕的代價/獲益問題. : 那麼,從軟體人的角度來看, : CPU內部,如何實現硬體的多執行緒,似乎是太過細節的問題, : 如此一來,粗放與細耕應該如何取捨呢? : (通通交給作業系統與編譯器嗎?) 交給 OS 會消耗 runtime 資源, 交給 compiler 會有難以預測 runtime 行為的問題而太保守, 純手工來 tune 通常是最好的, 至於要 tune 哪裡可以看 profiling 結果來決定, 一開始你可以都交給 OS or compiler。 : > Multi-thread 要發揮效用, 程式設計者就要考慮到相當細節的部份, 同 : > 步與切換的排程問題都得親自處理, 才能發揮出併行處理又無太多 overhead : > 的效用. : > 由 compiler 與 library API 支援的 multi-thread 在啟動與切換 thread : > 時就是讓不同 thread 使用不同的 register set. 在共用 process memory : > space 與工作環境的假設下, user program 的 threads 間不會自尋煩惱的相互 : > 干擾, 因此就不必類似 multi-process 般的做此制式 save/restore 動作. 而 : > 使用不同組的 register set, 當然更是不必全做存回 memory 的 save/restore : > 動作, 此類 overhead 就省了. : > Multi-thread program 通常寫成同一份的 program 給 compiler 編譯, 同 : > 時指明要使用 thread 特性, 此時 compiler 就可細查會相互干擾的 register : > 有那些, 在切換時就可只針對會干擾到的 register 做最有效的暫存與還原. : 使用類似POSIX Threads這樣的東西,軟體人是不是就需要考慮較多的硬體細節? : 而當使用OpenMP、Intel Threading Building Blocks這樣的東西的時候, : 就可以把硬體細節丟給Compiler與Library API; : 是這樣嗎? 沒聽說過用 pthread 就要考慮到硬體, 頂多去瞭解它是什麼 thread model, 是不是在 kernel space, 還有是 compiler 還是 library 支援而已, 這些都是完全在軟體角度思考, 除非你想去搞清楚每個 cycle 的時間到底被花在哪裡。 稍稍深入分析 multi-thread 程式的效能時, 難免就多少會跟 computer architecture 有點關係, 但是它並非硬體「細節」, 只是一個抽象概念而已, 你就算用了 OpenMP 還是其它什麼的要深究的話還是會接觸到, 比方說你要去看 compiler 到底怎樣處理那些 directives, 然後鑽進 library or OS 裡面追查 thread 到底是被怎樣處理的, 最後還是得去瞭解你執行環境的電腦是什麼樣的架構, 然後去追 cache、speculation、prediction 等等有的沒的參數, 這些在你真的想去抓最根本的原因時都不可能避免; 就算你是寫 Java 用的是 Java Thread, 你想追根究底的時候也不可能永遠在抽象的 VM 層級上看, 畢竟真正影響程式執行效率的還是 architecture 本身。 所謂硬體細節一般是指 organization 的部分, 不需要跳到這麼底層來寫程式已經很好了, 這不是文字遊戲, architecture 本身就是被定位在偏寫程式相關的那邊, 在你需要斤斤計較的時候無視 architecture 特性是不可能的, 不會因為是以哪種形式支援 thread 而有所差異。 -- Ling-hua Tseng ([email protected]) Department of Computer Science, National Tsing-Hua University Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design Researching: Software pipelining for VLIW architectures Homepage: https://www.tinlans.org --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.114.73







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP