Re: [請益] 那些語言或程式用上 多核心 CPU
※ 引述《interpreter (點點加油)》之銘言:
: : 現在的 Windows , Linux OS 不是多處理機又是多工的嗎 ? 那麼多核心為甚麼
: : 不能像多處理機那樣跑 ?
: 多工,是單核心,做得很快讓你覺得是同時在做,達到mutiprocess的效果
: __A__
: ___B__
: __C__
多工也是可以用多處理機吧 ! 多核雖然裝在同一個 CPU Chip 但是
Program Counter 數是配多核的, 多核應該能逼近多處理機那樣跑.
: ...
: : OS 也是用程式語言寫出來的, 現在的程式語言寫不出有多工的程式嗎 ?
: 多工的程式?嗯…用詞不太對 建議您可以認真的瞭解一下多工的定義
: 那些看似同時可做兩件事的其實都是很快的context switch 也就是multiprogramming
: : 那麼使用 thread lib 寫的程式不算多工 ?
: 同前面 多工是以kernel執行的架構來決定 若同一process下的不同thread可在不同CPU
: 上執行 那它可能就像是你想的thread lib做出來的 若這樣那就叫parallel了
: : 寫 OS 的程式語言跟寫一般程式的程式語言沒有不同吧 ?
: : 既然 OS 是多工的, 程式就是透過 OS 平台在其上跑的, 那多個片段程式
: : 一起跑不就是多工 ? 再把多個片段程式合在一起, 讓多核心對每段同時
: ^^^^^^^^^^^^^^^^^ 是! 可是這不叫「程式多工」,是OS達成「多工」
: : 跑, 那不就是多核心一起跑 ? 如果說不可以, 那又差在那裡 ?
: 不可以 parallel的系統需要communication 也就是當你形容的多個CPU平行執行
: 多個程式時,它是需要溝通的,這些溝通的overhead使得parallel非常難做 也
: 就是為什麼intel要搞這麼久
沒有前後次序相關的片段都是可以平行的, 等前面做完後面才能接著做的, 才需
要前面的來通知, 何時該通知, 由寫程式的來安排就不難, 現在的程式語言如果
沒有通知與啟動功能, 還是可以透過 lib 來做到吧 !
: 還有 多核心(CPU)的電腦執行效率並非1+1=2 事實上1+1約等於1.2左右(有錯請鞭)
: 不過這個是可以克服的 也是目前努力的方向
: : 那就要問 avi 兄台這段話的意思:
: : " 記得看過一篇文章是說當時INTEL為了開發雙核心的技術
: : 光compiler就搞了好幾年,因為當換算到machine time的時候要決定哪段code
: : 要讓哪個CPU跑,還要解決同步不同步問題"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.6.234
→
05/15 03:00, , 1F
05/15 03:00, 1F
推
05/15 11:27, , 2F
05/15 11:27, 2F
→
05/15 11:27, , 3F
05/15 11:27, 3F
討論串 (同標題文章)
完整討論串 (本文為第 9 之 30 篇):