Re: [請益] 那些語言或程式用上 多核心 CPU

看板Programming作者 (ggg)時間17年前 (2007/05/19 20:57), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串16/30 (看更多)
※ 引述《ephesians (ephesians)》之銘言: : ※ 引述《ggg12345 (ggg)》之銘言: : : 1.現在的 Compiler 似乎不做較長片段執行時間的估算. 但還是可以估, 未必 : : 準確就是. : : 2.時延等候讓 cpu 或 core 去做別的事或都不做事, 就不必不停叫 CPU 去檢 : : 試, 造成對 instruction pipeline 或 cache 的干擾, 固然是一種方法, 但 : : 也不是很困難做不到的問題, 至少, 不會升級到 Halting Problem . : : 假如是這種狀況, 似乎事情還不是那麼難纏 ! 不過, Intel 因此被 AMD 拼過去, : : 那一定還有更大條的才是. : 很抱歉,開始看不懂你在講什麼了. : 有哪個compiler會做程式執行時間的估算嗎? 好厲害喔... : 意思是如果我寫這樣的程式: : void f() { f(); } : int main() { f(); return 0; } : 此程式compiled之後, compiler會告訴我 : "The program takes infinite time to execute." 你的意思是這樣子嗎? : 學過一些compiler設計的書,沒在講程式執行時間評估. =================================================================== 那您先得看底下這一段: 這是 avi 先進提供的. 前面已有人質疑是 Halting Problem 能解嗎 ? 但應該不是這樣的對象與用途. 多核心 如同 多處理機, 碰上互斥的 critical section (region) 要等待時, 如何個等法是個問題. critical section 是一種假設在 finite time 必得執 行完的程式片段及相關資料(或資源), 能預估已進入 critcal section 執行 的 CPU 何時將釋出是有好處的. compiler 在 code generation 階段估算 這種 critical section 片段程式 的 某類cpu cycle 數是沒有問題的. 譬如平行分區計算, 需得在交界處等候接手, 這種 pipeline 接續的算法在 finite element 法做計算時就用得上, 能估算就能解很多問題, 不必靠 os 提供派工與提供同步機制. ============================================================================ 作者 avi.bbs@bala.mis.ccu.edu.tw (keep healthy body), 看板 programming 標題 Re: [請益] 那些語言或程式用上 多核心 CPU ※ 引述《ggg12345.bbs@ptt.cc (ggg)》之銘言: > Notebook 都改用雙核心 cpu , 那些程式或應用是已經用上這項技術的 ? > 要發揮多核心的作用, 使用那種程式語言會比較適當 ? 其實支援雙核心第一應該是程式語言所跑的平台 也就是說假設你的OS根本就不支援雙核心 你用什麼程式語言應該都一樣 當OS有支援的狀況下 再來使用某程式語言開發的時候,或多或少到run time的時候 OS應該會決定是否要使用到雙核心的技術 我是覺得這一段應該是OS會做掉 也就是說哪種程式語言可能都一樣 或許有某個程式語言有所謂的支援雙核心 但我想,那大概也只是讓你在開發的過程當中選擇是否要應用到雙核心技術 記得看過一篇文章是說當時INTEL為了開發雙核心的技術 光compiler就搞了好幾年,因為當換算到machine time的時候要決定哪段code 要讓哪個CPU跑,還要解決同步不同步問題 也因為這樣讓AMD的64位元搶得了進入市場的先機 anyway,我好像還是沒講到重點..... ※ 編輯: ggg12345 來自: 140.115.6.234 (05/19 22:18)

05/20 08:18, , 1F
因為他講錯了 @@
05/20 08:18, 1F
文章代碼(AID): #16JlG_gq (Programming)
討論串 (同標題文章)
文章代碼(AID): #16JlG_gq (Programming)