1. 程式人生 > >並行化的世界--分布式硬件和分布式操作系統

並行化的世界--分布式硬件和分布式操作系統

分布式系 暫時 工程 理解 主機數 想要 聯網 擴展 對象

當cpu的運行速度達到極限後,這個世界極其需要分布式硬件,和分布式操作系統。

什麽教分布式硬件呢?就是說,cpu(在分布式系統,cpu這個東西應該會改名字,叫計算核心,可能更好些,但是為了大家有一個理解的共同背景,暫時還叫cpu)可以無限擴展的。cpu怎麽能無限擴展呢?當然可以,當今互聯網中的主機數量不是在無限擴展嗎?

借用互聯網的思想,我們完全可以把互聯網放到主機裏面!讓主機內的硬件鏈接成一個網絡,那自然可以讓cpu無限擴展了(前提是,只要你有個可以無限大的機箱)。

把互聯網放進機箱中,讓cpu無限擴展,有3個核心的東西。一,硬件鏈接協議。二是真正的分布式操作系統。三把任務並行化。

硬件鏈接協議,PCIe就非常不錯,開了個好頭。完全可以在PCIe的基礎上進行擴展,支持多cpu,多設備互聯。

當多cpu互聯後,內存也要分布式的,把現在的8G的內存條可以分解為8個1G的小內存,放在cpu的近的地方。這樣cpu與內存的速度相對不那麽重要了,因為沒有核心的cpu,所有的cpu都可以就近訪問內存。

分布式操作系統和任務並行化,非常接近。實現這兩條的關鍵,要重新改造我們編程世界觀。不在以過程式和函數式的方式構造世界,在並行的世界裏,要把所有的任務分類,哪些是並行的, 哪些是串行的。

這實際上是一種哲學觀點。大型任務在絕大多數下都是可以分解成小任務的。每個小任務,可以分配一個計算核心。這樣就可以實現並行化了。

這樣的話,主機內就可以容納各種異構CPU,只要遵守相同的硬件協議,它們就能配合工作。

軟件工程的思想要有一個大的改變,由面向函數、面向對象、面向過程改成面向任務編程。一個軟件被分解了一系列的小任務,小任務之間的通信。一定進行編碼(協議化)。只要遵守相同的協議,軟件也是可以無限擴展的。

並行化的世界--分布式硬件和分布式操作系統