汉高澳大利亚matrix矩阵计算器
我在夢中的超級計算機超級計算機鋸,使用大量陣列的cpu記憶,完成并行計算。一個手機制造商由于使用普通機械提供的服務,往往造成停機。是鐵道部列車網絡售票的事實。
無法使用云服務。上萬臺計算機并行處理,因此,處理能力是不夠的。
于是我設計了一臺電腦,主板上再插上幾個小主板,小主板上有cpu,內存。固態存儲等。大小跟光驅差點兒相同。插上4個,8個,16個。完畢陣列計算,通過操作系統分配計算到陣列上,從而快速迸發運算。
一臺機器計算力相當于上百臺普通計算機。為了支持并發計算,程序設計須要改進,能夠把指定程序代碼分配到某個矩陣單元上執行,當然編譯器能夠自己主動分配。可是必須指定某些代碼不能切割計算。否則會導致不同步計算混亂。暫且稱為原子代碼,原子代碼是不能切割的。比方for循環執行一百億次,循環內假設是數據疊加,切割后發送到不同矩陣單元計算由于初始值不同,可能就會計算錯誤,所以不能切割進行分布式計算,須要改進算法,比方不用for循環,改用其它算法,因此須要分布式編程,把代碼切割成原子代碼。這種編程可能跟如今的編程有些不同的了。簡單的說就是要設計分布式算法。這種算法還能夠暫停。保存暫時數據,有點像虛擬機的suspend掛起。我們如今寫的程序執行中是不能夠掛起的。分布式程序是能夠掛起的。也就是說矩陣電腦程序能夠掛起,也能夠切換到不同矩陣單元繼續計算。
漢澳matrix矩陣電腦有超強的計算能力,攜帶一臺電腦就相當于攜帶上百臺普通計算機。其計算能力多么強大。普通家庭用不到這么強的機器吧。當然我們須要先完好矩陣操作系統,然后完好支持分布式計算的編譯器,最后我們才有真正的普通矩陣電腦,矩陣單元快速迸發計算。矩陣電腦可能在未來機器人上用到,矩陣電腦可能再次縮小。固態硬盤出現也有助于開發能承受大震動的機器人。
矩陣電腦是在cpu計算能力遇到瓶頸后通過并行計算把計算機的計算能力再提升到一個數量級的最佳辦法,突破摩爾定律限制,通過添加矩陣單元讓計算機計算速度快速翻倍。
曾經的計算機像房子一樣的。如今的超級計算機也有幾層樓房子。不可能攜帶,也不能叫電腦,僅僅有矩陣電腦才干把超級計算機搬回到家中。僅僅有矩陣電腦才干充分利用計算機的能力,多核多cpu電腦都不能再次擴展電腦的計算能力。而矩陣電腦分布式計算就能做到,這也是看黑客帝國得到的啟發。
我不知道超級計算機是怎么往矩陣單元發送計算任務的,可能程序都是非常定制的。可能僅僅是派發某種計算任務。
可是我覺得為了適應計算多樣性,可能在矩陣單元上還是執行有一個操作系統。事實上操作系統內核主要有進程管理,內存管理,文件系統。輸入/輸出系統。文件系統和I/O系統須要驅動程序跟硬件交互。
為了實現多任務,在每一個矩陣單元加載操作系統內核是非常必要的。事實上漢澳操作系統內核不像windows那樣占用內存和資源。
視窗系統才是資源消耗大戶。
我們僅僅是在母版上執行完整的操作系統,矩陣單元子板能夠理解為一個獨立的子系統。可是跟硬件交互須要通過母版進行。也能夠通過總線操控硬件。可是這樣就存在訪問沖突的問題,因此矩陣單元不能直接訪問硬件,須要通過母版上的操作系統共享訪問硬件。
怎樣向矩陣單元發送計算任務呢?能否夠在矩陣單元執行一個計算服務,把運算代碼發送過去。然后執行,運算代碼是不是整個進程程序呢?還是程序一部分?
為了實現并發運算,我們設計一個并發算法,計算1到100的累加,以下是器普語言代碼
整數 兩數間數字累加(整數 開始數,整數 結束數) //這個函數是原子代碼,不管怎么運行都不跟其它代碼沖突
{
整數 累加總數:=0;
循環 (整數 遞增因子:=開始數;遞增因子<=結束數;遞增因子:=遞增因子+1)
{
累加總數:=累加總數+遞增因子。
}
返回?累加總數;
}
整數 并發計算返回[10];
[并發代碼開始]
并發計算返回[0]:=兩數間數字累加(1,10);
并發計算返回[1]:=兩數間數字累加(11,20);
并發計算返回[2]:=兩數間數字累加(21,30);
并發計算返回[3]:=兩數間數字累加(31,40);
并發計算返回[4]:=兩數間數字累加(41,50);
并發計算返回[5]:=兩數間數字累加(51,60);
并發計算返回[6]:=兩數間數字累加(61,70);
并發計算返回[7]:=兩數間數字累加(71,80);
并發計算返回[8]:=兩數間數字累加(81,90);
并發計算返回[9]:=兩數間數字累加(91,100);
[并發代碼結束]
整數?累加總數:=0;
循環 (整數 遞增因子:=0;遞增因子<=9;遞增因子:=遞增因子+1)
{
累加總數:=累加總數+遞并發計算返回[遞增因子];
}
打印(累加總數);
這個程序假設不進行并發計算,那么順序運行也沒有什么問題,可是為了實現矩陣計算。須要把計算切割成10個子函數,并分開獨立運行。
這個僅僅是一個簡單的計算,可是在枚舉破解password等程序,計算量就會非常大。
而真正的并發代碼可能更復雜。
大家看到代碼中有[并發代碼開始]和[并發代碼結束]標志,表示中間的代碼能夠并發運行,每一行一個并發計算,都寫成函數調用形式。
眼下在普通編譯器中,這個代碼編譯沒什么問題,可是增加了并發計算,編譯器怎樣實現呢?我想能夠在編譯器編譯這些代碼的時候增加一個并發池,并發池存儲每行代碼,然后把這些并發代碼發送到矩陣單元讓他們運行。運行結束以后返回。或者通過事件或者中斷告訴主程序,本并發代碼運行完畢,然后把運行完的代碼從并發池移走,或者標記做完。再取出以下的并發代碼發送到空暇的矩陣單元,確保每一個矩陣單元都不空暇。充分利用矩陣單元的計算能力。如此完畢了全部并發代碼,就能夠運行[并發代碼結束]后的程序代碼。這些程序不須要并發運行。
用并發池管理和發送并發代碼。似乎已經能夠實現編譯器對并發代碼的管理,可是在矩陣單元怎樣實現接收代碼并運行呢?
如果矩陣單元都有個并發代碼運行server,接收母版發來的代碼并運行。那么只發送該函數的代碼預計還不夠。由于該函數可能還調用幾層函數,甚至操作系統api,我認為如果能探測到該并發函數要調用那些函數并把調用的代碼發過去。只是函數須要重定位,能夠在編譯時把該并發函數須要使用的代碼函數整合到并發代碼段,類似靜態編譯,然后把該代碼段發送過去,而不是只發送一個函數代碼。那樣就找不到下級函數代碼。至于調用系統api,由于矩陣單元運行有一個操作系統,這個問題攻克了。
我認為超級計算機矩陣單元上并沒有操作系統。因此代碼功能是有限的。
并發代碼server甚至能夠接收網絡外來的代碼,只是已經超出矩陣電腦的范圍了,預計超級計算機能夠。
并發代碼不應該有全局變量,否則會有訪問沖突并且不能同步,假設一定要讀取全局數據。那么怎樣處理同步數據呢?這個可能要用共享變量來同步,那么就涉及到主程序與并發代碼共享數據的問題。比方在線人數,假設存放到數據庫,就通過數據庫同步機制來實現,直接存放在主程序空間可能不太靠。能夠在操作系統引入一個內存數據庫來實現數據共享。避免并發訪問數據沖突問題,全局變量都存入內存數據庫。
unix說的簡單就是美。內存數據庫總比不斷在程序代碼引入共享機制更有效。對于須要永久存放的數據,可能須要直接存入數據庫server。而不是內存數據庫。
最后就是并發中面對的輸入輸出訪問的問題。這是并發計算的瓶頸,也是easy堵塞的。
文件系統,網絡訪問速度比較慢,是在并發計算中要等待的,比方網絡并發訪問,同一時候有一萬個連接進入,處理中難免要等待。
可是矩陣單元并沒有文件系統和網絡設備,他們要訪問文件須要通過主程序還是母版操作系統實現?一般來說主程序也是調用系統api,矩陣單元也能夠通過母版操作系統實現系統調用。
矩陣單元怎樣通過內存總線訪問文件和網絡設備?多操作系統怎樣共享硬件?眼下都是單操作系統通過操作系統仲裁讓不同進程輪流訪問硬件,事實上我認為讓非常多矩陣單元的操作系統共享直接訪問硬件是不現實的。由于誰來仲裁訪問機制。要再設計一個底層平臺?這個平臺又怎么執行?并且矩陣單元也要執行驅動程序?我認為最好的辦法讓母版的操作系統獨占硬件訪問,子板操作系統要訪問硬件須要通過母版操作系統實現,也就是說大量的矩陣單元要訪問硬件僅僅能向母版操作系統提交請求。然后讓母版操作系統來完畢再返回結果。不然讓子板擁有自己的硬件?比方有自己的網絡接口。這個沒問題的。可是硬盤。比方存放幾千G空間的硬盤不可能分開。否則數據一致性和完整就不能做到。比方數據庫server,數據不可能分散存放,否則幾千g的大數據怎樣管理?
假設要這樣做,子板操作系統的系統api就有兩種,有的api能夠由子系統直接完畢,有的不能完畢。能夠把api轉發到母版操作系統運行然后返回。
對于這些api處理,能運行就調用內核服務完畢,不能就發送到母版操作系統。母版操作系統上運行apiserver。接收矩陣單元發來的API請求并處理返回。
幸好眼下操作系統的api處理機制都非常好。apiserver只是是運行api請求。僅僅只是不是本操作系統的請求。
這樣看來矩陣單元的操作系統還是跟母版上完整的操作系統有差別的。
矩陣單元操作系統沒有驅動程序,對硬件訪問的api都是虛擬的api,須要轉發到母版操作系統運行。子板程序要訪問母版操作系統的內存,有沒有必要,假設有就加上一個映射表。
讀寫文件和網絡操作可能有大數據訪問,那么子板操作系統和母版操作系統可能有大數據傳送。通過內存總線,數據傳送應該不難,能夠用數據映射來讀寫數據,而不是大數據復制,能夠這樣設計,大數據都存在矩陣單元,母版不幫矩陣單元存儲數據。否則幾十個矩陣單元的數據是非常大的。讀出的數據直接存到矩陣單元的內存,寫數據直接從矩陣單元讀出寫入,不要暫時存到母版操作系統內存,否則可能不夠存,也不是必需。比方矩陣單元調用fwrite系統函數,母版apiserver執行fwrite函數直接從矩陣單元內存指針讀取數據,不要數據復制了。這也是矩陣電腦和幾十臺機器聯網計算的差別。矩陣單元的內存數據能夠直接訪問的。假設這樣,不同矩陣單元的內存地址可能須要在母版操作系統拼接成一個大內存。可是矩陣單元操作系統內的內存還是按操作系統存址。否則無法執行,只是僅僅須要一個映射表完畢。這個映射表在母版操作系統把子板操作系統加載矩陣單元的時候就建立好了。它會記錄每一個矩陣單元的內存偏移。
矩陣單元還可能是多核cpu,因此能運行多任務多進程和多線程,能夠接收處理很多其它的發派過來的任務,僅僅是檢測到cpu負載已經非常大了就不要再往矩陣單元發派計算任務了。
能夠往矩陣單元發送一個進程。也能夠發派代碼,用并發server處理完畢。并發server可能就是一個殼,不能同一時候處理多個并發代碼。而是再啟動一個并發server運行下一個并發代碼。這樣設計可能比較妥當,由于并發server事實上是一個殼,裝入并發代碼運行。假設里面還要處理多個并發代碼。可能非常復雜。
或者并發server就收代碼后生成一個殼放入代碼運行。這樣每一個殼僅僅運行一個并發代碼。處理結果通過并發server告知主程序,并銷毀這個殼。并發代碼并非完畢程序。能夠這樣理解,把并發代碼增加殼就成為一個完整程序,能夠運行了。返回值直接存入數據庫可能比較妥當。
眼下多核多cpu都是把線程放入不同的核運行,而一個程序能不能分幾部分放到幾個核運行,僅僅能是一個線程放到一個核。對于多線程程序可能實用。
眼下漢澳操作系統對多核多cpu處理是游刃有余的,僅僅是為了適應矩陣電腦須要,須要進行適當改進,以滿足并發計算須要。而器普編譯也要添加并發代碼編譯功能,再加上并發池。并發server。殼代碼運行,虛擬api,母版apiserver,加載矩陣操作系統等,就能讓漢澳電腦變成矩陣電腦。滿足復雜多樣的并發計算。
記得10年前我以前寫了皮鞋上的漢澳電腦,現在就是人們說的穿戴設備,盡管還沒有一個漢澳穿戴設備,可是以后不是不可能成為現實。
矩陣電腦開發成功讓人工智能發展成為可能,假設一臺矩陣電腦的計算能力相當于100臺普通電腦。眼下普通企事業單位個人要安裝100臺電腦仍然不太可能,不只費用高、耗電降溫難度大,就是存放空間也難以承受。即使用機柜存放。也有幾十個機柜,況且野外也不可能存放這么多電腦。并且機器人要發展起來,一百臺電腦的機器人該多大。唯獨普通電腦一樣大的矩陣電腦放進機器人體內,機器人能夠才做成跟人一樣大小,或者更小。
機器人的形狀仍然須要做成人模樣,假設做成汽車那樣,翻到了非常難再爬起來。并且汽車上樓梯也不可能。
關于人工智能應用能夠看筆者寫的《人工智能系統》,該系統的實現也是以矩陣電腦開發成功為基礎的。為了開發矩陣電腦。我決定升級漢澳sinox到64位。停止開發32位sinox,從而在內存尋址上對接矩陣電腦。????
開發漢澳sinox64位,對接漢澳矩陣電腦
即使全然設計出了漢澳矩陣電腦線路圖,要在上面執行操作系統必須有矩陣操作系統。
漢澳sinox64位操作系統并非矩陣操作系統,僅僅是更為接近。
漢澳矩陣電腦假設插有16個矩陣單元,矩陣單元上有CPU和內存,內存至少2G,16片就是32G內存,因此母版上的矩陣操作系統要尋址16個矩陣單元,就必須能尋址至少32G內存。而眼下漢澳2013僅僅是32位操作系統。僅僅能尋址4G以內的內存。假設要訪問超過4G內存須要用類似段選擇子這種硬件來輔助完畢。而64位操作系統能夠尋址170億G以上的內存,建立在64位操作系統上的矩陣操作系統尋址將非常方便,即使矩陣計算機擴大到256個矩陣單元也輕松尋址,簡化了設計。
漢澳矩陣電腦硬件設計
首先矩陣電腦的cpu上將是64位的,從而支持無限尋址能力。
矩陣單元由一個cpu和2G以上內存組成,并配上電路和內存總線跟母板連接。矩陣單元就是一個僅僅有內存和cpu的電腦。沒有外接硬件,啟動的時候就沒有硬件檢測,硬件請求通過執行在母版上的操作系統實現。
他的啟動能夠由母版操作系統逐個加載和執行。而不是有自己的硬盤,自行加載執行。當然也能夠這樣做。各有優缺點。
cpu應該是運算速度較快。低功耗的。不須要風扇的。眼下pc機上的cpu都貼有cpu風扇。否則非常快就燒爛。
可見這樣的cpu不太適合執行在矩陣電腦。除非矩陣電腦作為server有穩定環境能夠執行風扇,而機器人上面執行矩陣電腦是不可能安裝有風扇的。矩陣電腦也能夠分成多種類型,只是在快速處理矩陣電腦上,風扇仍然不能夠避免的。我們這里如果矩陣電腦是能夠在野外執行的,而不都是在空調房里。
我們如果僅僅能選擇一種cpu,我認為arm芯片64位是比較適合的。國內已經有廠家設計生產arm芯片,10年內應該非常成熟,眼下國內arm芯片主要用在手機。
能夠這樣理解。手機主板非常小,內存加上cpu這種矩陣子板也非常小,能夠相當于具有散熱功能的海盜船內存條,我們能夠把16快矩陣子板環繞一個中心像車軸那樣向外輻射。中心執行一個風扇散熱就能夠了,這種電腦跟原來的電腦還是差點兒相同,把顯卡也集成到母版,主板上加上16塊內存插槽。這樣矩陣電腦做成跟原來電腦大小差點兒相同。母版上cpu也不須要運算速度非常快。由于不須要獨立的電腦運算。假設cpu也用8核x64cpu。16乘以8等于128臺單核奔騰cpu。
這種機器計算能力非常強大的,只是假設矩陣電腦使用低功耗的arm cpu,計算能力可能沒那么強大,可是足夠非常多場合使用。要想計算速度更快僅僅須要不停的擴展插槽。這個有點像眼下最先進的文件系統zfs,能夠不停插入硬盤擴大存儲空間。
矩陣電腦最大的長處是并行計算。假如單核計算機計算用16秒,16矩陣單元計算通過并行計算可能僅僅要1秒。盡管可能還有其它額外開銷。但能夠忽略不計。矩陣單元有點像曾經的協處理器,加速主cpu計算。對于須要反應非常快,大計算量的場合,16倍的計算處理能夠獲得實時反應。16秒和1秒的響應差距非常大。并行計算須要操作系統和編譯器的支持。因此就有矩陣操作系統和矩陣編程。
這部分內容前面講過了。
矩陣電腦不久前提出。可是因為信息技術發展非常快。可能10年內就會有矩陣電腦面世。矩陣電腦技術眼下已經發布。假設國內外IT巨頭及時投入研發,可能5年后就有矩陣電腦面世。
只是或許他們并不真的覺得會有矩陣電腦,他們以為僅僅是在科幻片中。可能會錯失最佳時機。
假設這樣這也是漢澳矩陣電腦推出最好的機會,一舉擁有矩陣電腦的巨大市場。漢澳矩陣電腦應該在10年后推出。畢竟研發力量比較弱小。
矩陣電腦除了應用在快速計算。終于最有用的市場是人工智能系統,機器人等。人工智能主導下的工廠。可能不會有一個工人,只有系統維護人員。
大量的人工智能工廠,人類從繁重的勞動中解放出來。基質計算機很廣泛的應用,智能汽車。智能教師和其他。這些看起來很科幻,也許幾十年將得以實現。
矩陣電腦硬件。矩陣操作系統和編程矩陣,構成芯基質計算機。
漢高澳大利亞matrix矩陣計算器,不是很遠
轉載于:https://www.cnblogs.com/gcczhongduan/p/5042846.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的汉高澳大利亚matrix矩阵计算器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 01《软件需求分析教程》
- 下一篇: sql 取汉字首字母