計算機 與 處理器 爲何存在較大的差距?

       最近在研究 計算機 的存儲設備 爲何 與 處理器之間 存在較大的差距?下面這一篇是我在知乎上搜索查看的,我進行了總結:先擴展講一下計算機計算類型,或者叫負載類型。大的分類在是在線交易系統(OLTP)在線分析系統(OLAP),兩者主要的區別是數據是否變化:動態數據與靜態數據。

       OLTP就像銀行賬戶中的餘額,你隨時都可能支取使其產生變化,所以當把這份數據放在兩臺不同的服務器上的時候,一筆網銀扣款和一筆ATM支取如果同時發生在這兩臺計算機上的同一個賬戶,那麼兩臺計算機上同一個賬戶的餘額就不一致了。同理如果同時發生兩筆存款,或者一存一取,賬戶也是不一致的。所以所有的在線交易系統都只能把同一組數據放在同一臺機器上。交易越大服務器就得越強大,這叫縱向擴展,就是加CPU加內存。但你往服務器上加CPU的時候其計算能力不是線性增長的,平衡CPU之間的數據同步也要系統開銷,所以早期的計算機都是單CPU,現在的計算機加到一定數量的時候也是加不上去的。而且加CPU的時候其價格也不是線性增長的。一個16CPU的服務器肯定比四個最大能支撐4個CPU的服務器要貴的多。當然後來有些人發明了分庫分表技術,或者把數據中的靜態數據分離,或者把查詢分配到其它的服務器上,各種方法來降低縱向擴展的需求。所有的解決方案都有其它代價,大型單機服務器的需求。計算機縱向負載能力看就有PC機,X86商業服務器,小型機,大型機。其中PC機和X86服務器都是X86架構的;小型機主要是RISC架構的IBM和Oracle(以前的Sun)和富士通,以及IA64架構的HP;大型機就只有IBM的大型機。他們之間的差別這篇回答可能講不完,基本理解可以是轎車、卡車、重卡這種關係。、

當我們看到上面幾句藍色的字體時,就可以明白爲何存儲設備與處理器之間存在着幾個量級的差距。當然也就明白我們明白我們在開發大型軟件進行的分庫分表技術,以及集羣;

       OLAP主要是把一堆數據拿過來分析。這些數據短時間不會再發生變化了。例如商業智能數據、AI的數據、所謂的大數據、石油勘探地震數據的計算、保險精算系統、天氣模型計算、宇宙模型計算等等。既然數據不再發生變化,就可以把數據分成很多個小塊然後分發給很多臺計算機去計算,然後把結果彙總。這種計算方式叫做分佈式計算。理論上說你可以把數據分成非常非常小的模塊然後分給幾萬個手機來計算都行。曾經有一個非盈利組織就把很多醫學研究計算任務(大多是什麼癌症研究、DNA計算等)分成小塊,只要你裝一個它的屏保程序,它就會自動在你PC機閒置的時候啓動計算任務。大多數企業或政府還是要追求效率的,所以大多數都是分成幾個到最多幾百個數據塊進行計算。而且有些大型的計算需要各個計算節點之間有高速的交互。那些使用PC進行分佈式計算的的就屬於比較低級的分佈式計算,那些使用X86商業服務器或者小型機進行分佈式計算的就屬於高級分佈式計算或者叫做高性能計算。通常所說的超算就是這個高性能計算集羣。超算的本質是計算機的橫向擴展。因爲極少需要解決數據和計算之間互相牽制的問題,所以可以用人海戰術,加的節點越多計算能力越強大。計算能力基本和節點數量成線性增長。

到這裏基本明白了,計算機的縱向擴展能力是高端的技術,而超算就是加節點而已技術難度要小很多。

總結:雖然上面的分析與計算機軟件開發並無大的關係,但是也是其他技術的意義;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章