標籤:
最近linus提出並行技術不可行,我仔細的分析思考了漢澳sinox的並行技術,漢澳矩陣電腦逐漸清晰起來,並可能很快成為現實。
並行技術
並行是指在同一時刻,有多條指令在多個處理器上同時執行。
矩陣一般指陣列,2的N次方。2的10次方就是1024,這是因為資料處理是二進位。矩陣電腦可以理解為2的N次方個計算單元並行計算。
並行計算(Parallel Computing)是指同時使用多種計算資源解決計算問題的過程,是提高電腦系統計算速度和處理能力的一種有效手段。它的基本思想是用多個處理器來協同求解同一問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來並行計算。
多個處理器,現在出現了一個處理器多個核心,相當於把很多單核處理器放在一起。有2核,4核,8核,64核。
現在個人電腦已經使用18核了。
矩陣電腦應該是有數百甚至數千個核心。現在的作業系統已經支援數百個核心了。
並行計算的核心思想是計算的分解,然後把分解的計算分配到單獨核心執行。
現代作業系統利用cpu最小計算單位是線程,我們的並行計算實現就是把任務分解到線程,然後讓作業系統執行,線程執行完成後就可以把處理結果歸併計算,得到最後結果。
線程運行涉及到同步,共用,互斥等可以通過軟體完成,我們不需要考慮到指令級並行。指令級並行是由cpu解決的,比如多指令流,亂序執行等。
並發是指在同一時刻,只能有一條指令執行,但多個進程指令被快速輪換執行,使得在宏觀上具有多個進程同時執行的效果。
伺服器軟體處理大量請求,會有線程池來完成並發處理。並發是線程使用同一個核心交替執行。但是多核伺服器上,不同的線程可能分到不同核心運行,實現並行。
普通程式要利用多核心並行計算的辦法也是把任務分解成多線程。核心越多,線程越多計算越快。
漢澳矩陣電腦
矩陣計算是機擁有數百甚至數千核心的實現高速並行計算的電腦。
linus說電腦塞不入這麼多核心,其實一個cpu可以放入很多核心,現在已經有幾十核心的cpu!
而千核cpu已經開始研發了,千核處理器出現,也許開始很貴,但是後面可能跟現在cpu一樣便宜。
漢澳矩陣電腦只要4個千核cpu就有4千個核心了。顯然電腦體積不會變大,而百核手機體積也不會比現在手機大多少。
最初我設計的漢澳矩陣電腦是用八核cpu,需要100個cpu,確實讓電腦變大,但是千核cpu出現,漢澳矩陣計算也不會變大。
矩陣作業系統
漢澳sinox64位作業系統,引入高效能高可靠檔案儲存體系統zfs,加上作業系統虛擬機器機jail,可以在一台機器上運行上百個虛擬作業系統,實現作業系統級並行計算。
zfs通過軟體實現把幾塊硬碟組成raid磁碟陣列,這樣某塊盤損壞資料也不會丟失。
sinox堅如磐石高可靠網路處理,能滿足高效能矩陣電腦需要,滿足人工智慧計算需要。
人工智慧需要高速計算
現在人工作智能發展兩個方向是無人機和無人駕駛技術。目前普通電腦計算速度是不夠用的。
就說智能汽車吧,如果有100個視頻輸入,實現視頻識別需要大量計算,目前普通電腦一般只能處理一個網路攝影機識別資料,超過10個估計應付不過來了。
100個需要10台普通電腦,顯然汽車安裝10台電腦是不可能的。但是千核電腦,可能就能處理上千個網路攝影機輸入視頻識別。這樣高速電腦就能滿足智能汽車計算需要。無人機攝像範圍更大,幾平方公裡映像捕捉。目前老鷹的眼睛可以看到地面數千米遠的動物,計算能力很強。除了視頻處理,還有雷達資料處理,感應器資料處理,控制系統。
並行計算方法
1.多線程並行計算
線程利用cpu最小運算單位,理論上可以建立無限的線程,但是因為太多線程在一個cpu上切換太多花去很多開銷,計算反而慢。因此作業系統有最大線程數量。
進程是一個可執行程式,可以有多個線程。因此進程數比線程數還少。如果說系統有1千個核心,系統運行少於1000個線程,他們是並發執行,如果運行超過1000個線程,就有2個進程佔用同一個cpu核心,進入並髮狀態,需要切換線程。其實線程可能因為需要IO操作,可能還要等待,因此千核計算資料不一定提高1千倍。不過在程式設計中,單個應用程式在32位系統只能申請2G空間,64位Windows7的非分頁式記憶體最大應該是“75% of RAM up to a maximum of 128 GB“,可見記憶體也不是支援無線開線程的。
千核電腦應該配置2千G記憶體,相當於一個核心有2G記憶體。
並行進程比線程消耗資源大,不是推薦。
2.伺服器軟體實現線程池高速並發
目前web伺服器apache扛不住一千並發線程,線程池也是有限的。但是通過伺服器指令碼語言進行並發計算,能大大提高計算速度。
通過伺服器技術,把計算任務發送到多個伺服器實現高速計算,類似分散式運算,不過利用指令碼語言實現,可能也很麻煩,但是也能適用某些場合。
3.用並行計算服務器實現並行計算
一個應用程式,比像處理,有一百個網路攝影機接入,我們想知道有那個網路攝影機有人進出,然後警示。
我們可以用單個程式建立一千個線程來處理,只是不知道是否穩定。
如果建立並行伺服器,把定義好的資料和演算法發送到伺服器運算,比如一個視頻輸入資料分成10份,計算演算法是識別人像,發到並行伺服器軟體運行,採用類似伺服器技術,只是發送的不是指令碼,而是輸入資料和演算法代碼,這代碼可能是二進位,中繼語言,也可能是某種指令碼語言。這個計算比普通伺服器計算更高效,返回資料也方便接收,直接返回到調用函數空間。因為資料都是在一個機器記憶體,傳送會很快。
並行伺服器可以建立在虛擬作業系統上,用jail技術實現,運行上百個虛擬作業系統,每個虛擬作業系統運行一個並行計算服務器,並行計算服務器又維護一個線程池,還可以計算雷達資料,感應器資料等。
漢澳sinox並行矩陣電腦
擁有上千核心的運行漢澳sinox作業系統高速並行計算的漢澳sinox並行矩陣電腦,將是人工智慧的基礎。
目前雖然大型主機計算速度很快,但是並不太實用,因為太大了。跟pc機一樣大小的漢澳矩陣電腦卻可以進入百姓家。
漢澳sinox並行矩陣電腦,軟體革命已經開始。
漢澳sinox並行矩陣電腦