欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    文共1907字,預計學習時長6分鐘

    來源:Pexels


    法則(法律)是什么?


    根據維基百科的介紹,法律是指國家為維護社會和平和安全而制定的一套規則。


    物理定律是另一種“法律”,它們是根據經驗觀察推導出的事實。我們周圍的世界以特定的方式運作,而物理定律可以闡明這些方式。


    那么在計算機科學中,定律代表著什么呢?它們是維護軟件社會和平的規則,還是基于觀察而推導出的事實?


    本文將列舉計算機科學中最常用的定律,并將其分類。


    摩爾定律(Moore'sLaw)


    摩爾認為,微芯片上的晶體管數量每兩年會翻一番,盡管這樣使得電腦的成本加倍。他的這一觀點稱為摩爾定律。這一定律指出,計算機的速度和能力每隔幾年就會提高,獲得相同機能的花費也會減少。目前人們認為,正如摩爾定律所預測,計算機的運行速度每18個月就會翻一番。的確,過去50年都是如此。然而由于技術上的障礙,摩爾定律所預言的情形即將結束。赫伯薩特作于2005年的一篇流傳甚廣的文章中寫道:摩爾定律的預測呈現指數增長,很明顯,在突破物理硬件的限制之前,指數增長無法永遠持續下去。


    最重要的問題是未來幾代處理器將通過完全不同的方式提升性能。大多數的應用程序若不經重新設計將無法搭上這趟順風車。只有優良的并發(往往是多線程)程序才能受益于新處理器持續的指數級性能提升。說起來容易做起來難,并非所有問題都天然適合并行處理,并且并發編程并不容易,這就指引人們轉向阿姆達爾定律。


    來源:Pexels


    阿姆達爾定律(Amdahl'sLaw)


    阿姆達爾定律用于計算優化某一部分能夠對整體產生的最大優化效果。在并行計算中,阿姆達爾定律主要用于預測使用多處理器的程序理論上所能達到的最大提速。



    其中Slatency是任務整體執行過程的理論提速。S是任務中受益于系統性能提升的那一部分的加速,p是獲益部分占用執行時間的比例。


    古斯塔夫森定律(Gustafson'sLaw)


    古斯塔夫森定律給出了任務執行時間固定時通過提升系統性能所能達到的理論潛在加速。古斯塔夫森用以下公式預測使用N個處理器(而非一個)處理串行分數為s的任務時所獲得的加速S(串行分數不能從并行中獲益):



    使用不同的變量,古斯塔夫森定律也可表述為:


    其中,Slatency是整個任務執行過程的理論潛在加速,s是任務執行中受益于系統資源改進部分的潛在加速,p是系統資源改善之前受益部分占整個任務的執行工作量的比例,。


    古斯塔夫森定律補充了阿姆達爾定律的缺點,阿姆達爾定律假設問題大小固定,即執行的工作量不會隨著資源的改善而改變。古斯塔夫森定律提出,程序員傾向于調整問題的大小以充分利用通過改善資源釋放出的計算能力。更快的設備可以使用相同時間解決更大的問題。


    古斯塔夫森定律的意義在于改變了研究的目標,選擇或重構問題從而使用相同時間解決更大的問題。這一定律在某種意義上重新定義了效率,程序順序的限制可以通過總計算量的增加來抵消。


    阿姆達爾定律和古斯塔夫森定律的區別在于針對的目標,在問題大小增加的情況下維持相同的執行時間,或在問題大小不變的情況下減少執行時間。優化的目標是使程序在相同的工作負載下更快運行(阿姆達爾定律),或在相同的運行時間內實現更大的工作負載量(古斯塔夫森定律)。


    維爾斯定律(Wirth'sLaw)


    維爾斯定律認為,軟件變慢的速度比硬件變慢的速度快。該定律在2009年由谷歌的創始人拉里·佩奇重新表述,因此也稱為佩奇定律。這一定律的其他表述形式使用了20世紀90年代領先的硬件和軟件公司(英特爾和微軟),或者說他們的首席執行官(安迪·格魯夫與比爾·蓋茨)的名字:“英特爾贈予的由微軟拿走”,“安迪贈予的由比爾拿走”。


    來源:Pexels


    本文討論的定律都建立在觀察、實驗與數學基礎之上。


    事實證明,它們更接近于物理定律,而不是維護社會和平與安全的法律。


    計算機科學需要這些定律,而且部分定律非常流行,比如SOLID原則,GRASP原則以及各種架構模式和良好的實踐,它們有助于管理程序,維護程序的穩定性,使其適應各種變化。


    了解這些定律,相信在一定程度能擴充你的知識層,為今后的學習奠定良好的知識儲備。

    留言點贊關注

    我們一起分享AI學習與發展的干貨

    如轉載,請后臺留言,遵守轉載規范

    算機為什么是今天這樣子?本文將用一氣呵成的方式,把計算機發展歷史快速縷一遍。

    小時候,見過計算器,能很快完成計算,當時心想,計算器真厲害,能提前把所有結果存儲下來。

    后來,吵著鬧著要買小霸王學習機,最后如愿變成游戲機,經典游戲“超級瑪麗”和“坦克大戰”至今歷歷在目。

    后來,讀初中,有了象征意義上的電腦課,穿著鞋套去電腦室,完全不會操作。有一次,把電腦弄死機了,嚇得不輕,梅老師瞪了我一眼,直接把電源關了。

    然后,他回到他自己的電腦上,瀟灑地聽著任賢齊唱“讓我悲也好,讓我醉也好......”。那時,我知道了電腦還能唱歌。對電腦的屏幕畫面,也只有個模糊的印象:

    那時的電腦顯示器,真的很丑陋,在很長一段時間內,我一直誤以為,這一大坨東西就是電腦的全部。其實,它只是顯示器而已,遠非核心部件。

    廣義上講,上面提到的電子計算器、小霸王學習機和初中見到的那些電腦,都是計算機。你現在拿在手上用于閱讀的手機,也是計算機。總之,計算機無處不在。

    要了解計算機,就應該了解它的發展過程,去探索歷史上那些精彩的瞬間。本文從宏觀的角度,浮光掠影般了解一下計算機歷史。我們將以下圖的框架目錄來展開簡述:

    一. 手動計算機

    這里講的手動計算機,是從遠古時代到17世紀初。很久很久以前,女同志白天忙采集,男同志白天忙打獵,昨日獵回幾只羊,今朝逮回幾只兔,都需要計數,這涉及到數的表示。


    計數的歷史

    遠古時代的人,也有十個手指,所以采用手指來計數,是很順其自然的事情,這也就是十進制的來源。小時候,我們學習十以內數字的加減,就是用手指來計數,來看常見表示:

    我們來看下牛津詞典對digit的解釋,手指和數字的關系,一目了然。digit既有手指的意思,也有數字的意思。我們也順便學會了digit, digital, bit(binary digit)這幾個單詞。


    想一下,手指計數有哪些不足?很顯然,當數字變大后,手指個數不夠了。而且,古代的人也需要吃飯, 某天逮回3只羊,用手指記錄下來,吃飯時還得保持手指計數的姿勢。

    至于睡覺,那也睡不好,睡醒之后,手指松了,一切都忘了,這就尷尬了。得想其他辦法,很自然地,不要用手指這樣的“活物”來計數,用石頭吧,畢竟石頭不需要吃飯睡覺:

    我們來看下calculus這個單詞。容易看到,石頭和計算也聯系在一起,歷史淵源,原來如此。順便地,很輕松地學了單詞,下次看到calculator, calculation, 豈會陌生?

    想象一下,要把石頭從北京帶到深圳,該多麻煩。石頭太笨重了,還是不好,得想其他辦法。于是,人們想到用繩子來計數,輕松多了,攜帶也更加方便了。

    英語單詞cord就是繩子的意思,record就是記錄的意思,用繩子來記錄嘛。從詞源學來看,cord和record還是很有淵源的,很多東西聯系起來就簡單了。

    用結繩計數的人,可能會深刻理解李煜說的“剪不斷,理還亂”,“別是一般滋味在心頭”。我曾遇到過多次解不開結而苦惱的場景,相信你肯定也有,看著就頭大頭暈。

    而且,繩子計數沒法處理篡改的問題。昨天我從你那里借了3只兔,在繩子上打3個結,晚上回家偷偷解開其中的1個結,這就尷尬了,可見,要防止單方面偷偷篡改。

    于是,古人采用了刻痕計數,有了刻痕,雙方立下契約,劈成兩半,每人一份,防止單方篡改。在商朝時,甲骨文很流行。前幾年,還有人在高考作文中用甲骨文呢。

    我們提到的手指、石子、繩子和刻痕,主要用來計數,有了計數后,我們得對它進行加減乘除運算,這就涉及計算接下來,我們簡要聊聊計算方法和工具的發展。


    計算的歷史

    中國的算籌,歷史悠久。也有很多詞語中包含籌,如觥籌交錯,運籌帷幄等,現代管理學中還有一門“運籌學”的課程。所謂籌,就是竹子,跟擺弄火柴棍差不多。

    來看算盤,估計很多人見過,我家就有這個東西,“三下五除二”貌似盡人皆知。樓下培訓機構有個“珠心算課程”,曾經探頭去看了一眼,不怎么火熱,來看看算盤:

    再來看納皮爾籌,我琢磨了一下,道理很簡單,本質就是“九九乘法表”。比如,要計算125*8的值,預期結果是1000,具體是怎么計算的呢?我試了一下,如圖:

    ???????????????????????????????????????????????????????????納皮爾發明了對數,大家在高中肯定學過。???????????????????????????????????????????????????????????大家應該記得這個符號:logN, 那個N不僅僅指代正整數,也指代納皮爾名字中的N,表示對這位計算先驅的紀念。

    后來,拉普拉斯說:對數的發明,以其節省勞力,而使天文學家的壽命增加一倍。伽利略說:給我空間、時間和對數,我就能創造宇宙。對數的本質是降維。

    什么意思呢?對數可以把乘法除法轉化為加法減法。類似的做法是非常普遍的,傅里葉級數,傅里葉變換,拉普拉斯變換,Z變換,都是如此,降維降級處理。

    以常用的傅里葉變換為例,它把卷積運算降維為乘法運算,實現了積分向乘法的轉換,使得計算復雜度大大降低,學過《信號與系統》的朋友,應該深有感悟。

    再來看看由對數引出的滑尺計算,這個尺子是按照對數來制作的。很容易看出2*3=6,直接用尺子得到了結果,其背后的數學邏輯便是對數,log2+log3=log6, 所以2*3=6

    那年國慶節,看了核潛艇之父黃旭華老先生獲得了共和國勛章獎,在他的一個視頻,有一把計算尺,在那個年代,就是靠類似的計算尺完成核潛艇計算的,挺不容易。

    無論是算籌、算盤、納皮爾籌還是滑尺,都需要人參與具體過程和計算細節。那么有沒有這樣的工具:輸入3和4,讓工具自動得到7呢?那就來看自動計算的工具吧。

    二. 機械計算機

    機械計算機時代是從17世紀初到19世紀末。契克卡德是德國人,他制作了一個計算鐘,能實現簡單自動計算,當時的工藝肯定沒有下圖這么精美,下圖是后人做的復制品:

    法國的帕斯卡,就是搞壓強的那個物理學家。著名編程語言Pascal之名,正是取自帕斯卡,以紀念這位計算機先驅。帕斯卡制作了加法器,看著那些齒輪,真想去擰一擰:

    德國的數學家萊布尼茨,就更有名了,也是個非常自負的家伙。大學高等數學中的“牛頓-萊布尼茨”公式,應該熟悉吧,還有萊布尼茨對于交錯級數是否發散的判定方法。

    他敢跟牛頓爵爺叫板,還是有幾把刷子的。另外,據說,萊布尼茨對二進制的發明,也有較大的貢獻,這是現代計算機計算的基礎。萊布尼茨當時做了個機器,能做乘法:

    在計算機發展史上,上面都是鋪墊,直到巴貝奇差分機,才有了一些現代計算機理念的感覺。作為現代計算機的鼻祖,巴貝奇為計算機奮斗一生的精神,一直鼓勵著很多人:

    巴貝奇分析機更是思維超前,雖然最終沒有實際制造出來,但閃爍著天才般的智慧和火花,很多理念與現代計算機原理非常相似,來看下巴貝奇分析機模型,感覺挺炫酷的:

    巴貝奇帶著遺憾離開人世,但給后人留下了寶貴遺產。1832年,17歲的Ada參觀了巴貝奇差分機,深深著迷。在巴貝奇去世后,Ada繼續發揚光大巴貝奇的工作,為機器編程。

    Ada被認為是計算機歷史上的第一個程序員,是個女程序員哈。美國國防部曾經花了10年時間研發了一種編程語言,在命名時,他們想到了Ada, 并以此來命名,這就是Ada語言。

    Ada的父親,是英國著名詩人拜倫,可曾記得他那經典的話:命運要我去流浪的地方還不少,去時還帶著多少可嘆的記憶;但我唯一的慰藉的事情是:最不幸的遭遇也不足為奇

    扯遠了,回歸正題。可以看到,在機械計算機時代,人們用各種方式來制造精巧的機器,讓機器完成簡單的計算,這是很大的飛躍, 因為它把人從具體的計算過程中解放出來了。

    三. 機電計算機

    機電計算機是從19世紀末到20世紀40年代。機械和機電的差別,從名字上就可以看出來。自18世紀中葉以來,電學蓬勃發展,一些機器開始可以用電來驅動了。

    美國憲法中這樣一條規定:每10年需要做一次人口普查。1880的人口普查,花了7年的時間才得到結果。這就尷尬了,3年后,也就是1890年,還得再次普查。

    隨著美國人口越來越多,會出現這樣的問題:前一輪還沒普查完,后一輪又要開始。于是,開始想辦法盡量實現自動化,霍爾瑞斯發明了制表機,并脫穎而出。

    1890年的人口普查數據,是1880年的兩倍,但總共卻只耗時2年左右。當時,霍爾瑞斯制表機沒有選擇二進制,原因:二進轉換困難,二進制機器制作困難。

    人口普查后,霍爾瑞斯名聲大振。在1896年,他開了個制表機公司。在1924年,公司改名為IBM, 響當當的名字,快100年了,IBM在每個時代,幾乎都不落伍。

    在第二次世界大戰中,各國基于軍事需要,大力投入了計算機的研究,但是,德國似乎不怎么看好計算機,希特勒更相信武器本身的威力,更相信密集式地狂轟亂炸。

    祖斯,德國著名的計算機先驅,在1935-1945這十年左右的時間,先后建成了Z1/Z2/Z3/Z4計算機,這些計算機時運不濟,命途多舛,要么不被重用,要么被戰火吞噬。

    祖斯的Z1/Z2/Z3/Z4都很有創造性,比如,Z1驗證了機器計算的可行性,Z2是第一臺電磁式計算機,Z3可以用二進制控制Z4能用穿孔紙袋輸入輸出,甚至是處理條件。

    在第二次世界大戰中,德國不怎么重視計算機, 但美國就不一樣了,各類計算機相關的研究如火如荼地進行。也就是從這時開始,美國在信息領域的領先地位開始建立。

    史蒂比茲在自己的廚房,用二進制做實驗,驗證二進制的可行性。很多書上能看到Model K, 這個K就是kitchen,是廚房的意思,他老婆取名Model K,挺有意思的哈。

    貝爾實驗室的Model是一個系列,有很多不同的機型,比如Model I, 能完成遠程通信,畢竟電話與通信是貝爾實驗室的強項,這也為后來計算機網絡的發展奠定了基礎。

    哈佛大學也不甘落后,與IBM合作制作了哈佛Mark系列,不過其總設計師艾肯卻宣稱哈佛Mark I是他一個人搞起來的,IBM的小沃森自然很惱火,最終不得不分道揚鑣:

    哈佛Mark II是當時最大的繼電器是計算機,有13000多個繼電器。我們來看看繼電器長啥樣子。我還記得,在讀初三時,物理課上,老師深入講解過繼電器:?????????????????????????????????????

    ?????????????????????????????????????

    1947年9月9日,那是一個秋季的九九艷陽天,一個蛾子飛進了哈佛Mark II的一個繼電器,導致繼電器失效,機器無法正常工作,這就是歷史上有名的bug事件。

    如今的軟件開發中,大家常說的軟件bug, 就是指軟件缺陷或者漏洞,實際上,其實說的就是1947年的那只該死的蛾子。工作之后,我天天抓bug,抓得不亦樂乎。

    四. 電子計算機

    電子計算機從20世紀40年代至今,一直方興未艾。 繼電器雖然可以用來做計算機零件,但并不完美,它是機械的,反復移動,容易斷裂,而且速度還很慢。

    于是出現了電子管,也稱真空管,繼電器能做的二進制功能邏輯,電子管都能做,而且速度更快,快1000倍。來看看電子管長啥樣,我覺得挺好看,顏值不錯:

    當時,很多機電計算機由繼電器構成,但到了1945年,電子管計算機基本上取代了機電計算機,線路亂七八糟,操作計算機的方式就是插電線, 拔電線。

    那時的操作員,相當于今天的程序員,都是“編程”。不同之處是,那時工作很繁瑣,需要耐心,有很多女孩子加入,于是,男孩子也不愁找不到女朋友了。

    不像今天,程序員找個女朋友,費勁得很,可能是因為女程序員太少了。不久之前,有個男程序員就跟我聊天,吐槽這件事情,我就聽聽,然后樂呵笑了。

    電子管計算機固然快,但很昂貴,而且還受到“愛迪生效應”的影響:電子管工作的時候,容易發熱,動不動就被燒壞,這對于穩定性來說,是很致命的呢。

    比方說,好不容易寫好一篇公眾號文章,辛辛苦苦花了一周時間,結果某個電子管燒壞了,整個計算機失靈,文章丟失,肯定要罵人,丟過文章的人都知道。


    鑒于電子管的缺點,人們開始研究新的器材。1947年,晶體管誕生了,學過模擬電路的朋友,應該很熟悉這個東西,我的專業就與此相關。話不多說,來看下晶體管外形:

    1956年,肖克利因發明了晶體管而獲得了諾貝爾物理學獎,晶體管改變了世界。肖克利本人名利雙收,但想搞更多的錢,于是開始開公司,可是他智商很高,情商太低。

    于是,肖克利手下的八個人,先后離開了他。肖克利自然不滿,給這八個人扣了一個大帽子,即“八叛逆(The Traitorous Eight)”,這可是很厲害的八個人哦,一起來看看:

    1957年,這八個人接受一家公司資助,成立了后來很有名的仙童半導體公司,上圖的的字母F, 就是Fairchild, 意思就是仙童。學電子電路的朋友,應該基本都聽說過這個公司,它被譽為是硅谷的西點軍校。

    喬布斯就曾將其比作成熟的蒲公英,只要風一吹,其創新的精神,就像蒲公英的種子那樣,四處飛揚,生根發芽。然而,天下沒有不散的筵席,他們又陸續離開仙童公司,于是有了Intel和AMD, 是不是很熟悉?

    大家電腦中的CPU, 基本都是這兩家的搞出來的。這里順便說一下,摩爾是Intel的創始人之一,他提出了著名的摩爾定律,至今仍有效,并支配著硬件的發展。貌似扯遠了,我們來繼續看當時的晶體管計算機:

    盡管晶體管使計算機簡化了很大,但計算機仍然是龐然大物,還能繼續進行壓縮嗎?1958年,就職于德州儀器公司的杰克基爾比,發出疑問:為什么不在一塊硅片上,制造多個晶體管呢?這就是集成電路。

    1959年,肖克利八弟子之一的羅伯特諾依斯(Intel創始人之一), 也想到了同樣的方法。他們后來為誰先發明集成電路而爭論不休,現在普遍的觀點是:他們獨立發明了集成電路,可以說都是集成電路之父。

    說到羅伯特諾依斯,在喬布斯的“Stay Hungry, Stay Foolish”演講中,他說自己被趕出蘋果公司后,曾去找過羅伯特諾依斯和HP創始人之一的戴維帕卡德,估計是一起喝酒吐槽。來看下集成電路芯片吧:

    然而,這種集成度還遠遠不夠,能不能在更小的芯片上集成更多的晶體管和電子元件呢?當然可以,這就是大規模和超大規模集成電路。一塊芯片,指甲那么大,居然集成了上億個晶體管和電子器件,而且還要正常穩定工作,每每想到此,就不寒而栗了。

    當年占據整個房間大小的計算機,如今竟然被集成得這么小, 而且功能遠遠超過當時的計算機。這背后是數學、物理、化學、微電子學、電磁學、光學和量子力學等學科的功勞。難怪華為任總說:搞芯片,砸錢是不行的,要砸數學家,物理學家和化學家。

    講到這里,似乎把計算機發展簡史敘述了一遍,但僅僅是從計算機硬件角度進行的,并不是計算機發展歷史的全部,甚至只能算作是冰山一角。

    從計算機科學上看,沒有講到計算機科學之父——阿蘭圖靈,沒有講到現代計算機之父——馮諾依曼,沒有講到信息論之父——克勞德香農。此外,對于計算機型號、計算機公司、軟件發展、操作系統、編譯器、各種編程語言、數據庫、計算機網絡等等都沒有講到。所以這篇文章是不完整的,也不可能在一篇文章中把所有的東西介紹完畢,畢竟浩如煙海。


    轉載內容僅代表作者觀點

    不代表中科院物理所立場


    來源:濤歌依舊

    編輯:牧魚

    理 | 琰琰

    編輯 | 青暮

    12月16日,第十八屆中國計算機大會(CNCC2021)在深圳隆重開幕。今年大會主題是“計算賦能加速數字化轉型”,設有17個特邀報告、3場大會論壇、113場技術論壇,超過600位國內外計算機領域知名專家、企業家聚焦不同專業和話題,從學術、技術、產業、教育、科普等方面,全方位探討數字經濟與計算技術的前沿發展趨勢。

    開幕當天,CCF會士、CCF常務理事、CCF王選獎獲得者、中國工程院院士、中國科學院計算技術研究所研究員孫凝暉做了題為《從工程科學視角看計算機系統中的一個規律》的特邀報告。在報告中,孫凝暉從工程科學中的基本方法出發,分析了計算機系統中“求通用”的基本規律,介紹電子計算機和高性能計算機成為通用設備的技術發展過程,最后探討了未來通用計算平臺和高性能計算機的發展趨勢和可能的重要創新。

    在他看來,工程科學的基本規律牽引著高性能計算機等大工程的發展。從工程科學概念性、關鍵性、共同性的視角來看,工程系統的建構目標遵循兩大典型規律,即求極致和求通用。通過計算攝像顯微儀器和手機成像技術兩個案例分析,孫凝暉認為求極致系統的突破點在于抓主要矛盾,再結合新理論和新工程技術來突破關鍵指標。而求通用系統一般是一個松散耦合結構,關鍵在于刻畫描述問題,并將其映射到關鍵工程結構設計中去,再結合技術的時空局限性構建系統。

    在歷史性回顧中,孫凝暉從工程科學視角總結了從算盤時代,到機械計算工具,再到通用型電子計算機繁榮發展的關鍵轉折點和突破原因。結合自身研究工作,孫凝暉回顧了從求極致的超級計算機到求通用的高性能計算機的發展過程,總結了構造通用高性能計算機的工程科學基本方法。最后,他預測,未來的先進計算系統在概念性、關鍵性、共同性三個方面會呈現出以下特點:(1)在概念上系統熵把無序變為有序;(2)以數據為中心,具備內構安全特點的高通量計算系統會成為新的關鍵性結構;(3)系統的共同性將從以數據建模為中心的第四范式邁向以建模復雜系統為核心的第五范式。

    以下是演講全文,AI科技評論做了不改變原意的整理:

    1

    為什么要從工程科學視角看計算系統?

    今天的報告主題是從工程科學視角看計算機系統中的規律,與大家一起來探討指導高性能計算機這樣大工程的科學原理或者規律是什么?我們一般從計算機理論和數理基礎出發來思考工程科學的規律,那么,我今天試圖從工程科學規律視角來看這樣大的計算機系統。

    2017年底,兩院院士鄭哲敏先生發表了一篇文章《從錢學森的技術科學思想談起》,從這篇文章中,我得到一些啟示。這篇文章談到在科學發現的早期,科學和技術沒有嚴格的區分,以牛頓為例,他既是力學三大定律的提出者,也是劍橋大學物質結構研究的科學家。到了19世紀,科學和工程開始分道揚鑣,背后的原因是自然科學本身沒有一個完整的體系,加上很多科學理論對工程的實際貢獻有限,所以,大多工程師只采用純工程的方法來解決問題。后來到了20世紀中期,自然科學和工程技術再次緊密聯系在一起。特別是二戰期間,火箭、雷達、核武器,這些裝備都是大工程,它們不是依靠工程實踐積累和經驗判斷設計出來的,而是需要大量的自然科學作為依據,是科學家和工程師密切合作的產物。所以工程科學、自然科學和工程技術,三者之間的聯系本質上是非常緊密的。

    工程技術雖然是對自然界事物的經驗累積和對工藝的改進,但把其中的一些共性經驗和理論提煉出來,就可以形成工程科學理論或者具有普遍意義的規律;而工程科學對技術科學的成果加以分析和提高就有可能成為自然科學的一部分,比如工程控制論。

    鄭哲敏先生在這篇文章指出:“技術科學與工程技術的區別在于,每項工程涉及各種各樣的具體技術問題,而技術科學是研究其中概念性、關鍵性、共同性的規律,給出一些工程上解決類似問題的共同方案。就是說,技術科學對工業技術有著引導的作用,能極大地促進和推動工程技術的發展。”簡單來看,我們可以把它稱為“三性”,分別是概念性、關鍵性和共同性。

    今天我想用這三大類方法來看一下計算機系統中的典型規律,我稱它們為求極致的規律和求通用的規律。我們做大工程的系統建構主要有兩個大目標,一個叫求極致,在特定維度或者核心技術上突破最高、最大、最快的技術極限,開拓科學研究的新疆界,比如,類似的工程有最快的超級計算機,最重的重型火箭,或者最大口徑的望遠鏡,這類系統通常在學術研究中比較普遍。

    另一個叫求通用,這類系統的設計要求約束多,可快速迭代,使用范圍廣,可兼容性強,比如我們的手機攝像頭,汽車工業,民航客機,高性能計算機,這些都是求通用的典型系統,一般工業界對類似系統的建構更感興趣。這兩類系統在相互促進和相互轉換的過程中,也存在一些內在規律。

    我舉兩個例子,一個求極致的例子是戴瓊海院士在《自然-光子學(Nature Photonics)》雜志上發表的一項研究工作,這項研究將光學、微電子、計算機視覺以及信號處理等學科交叉,提出了一種顯微成像新架構,研制了“實時超寬場高分辨率成像顯微鏡”,各項研究指標都達到了極致,比如1厘米x1.2厘米的超寬帶視場,1.2微米的高分辨率,51億像素每秒的數據通量。這一工作為生命科學和醫學研究提供了一件“利器”。

    另外一個求通用的例子是我們非常熟悉的手機成像技術,它不追求每一個單項指標都達到極致,而是用軟硬一體化來補短板,占據除了專業相機以外的市場。它通過圖像信號處理器( ISP)彌補硬件在單項指標上的不足,讓成像器件,圖像計算硬件和處理軟件協同進步,并通過快速迭代實現性能提升。

    我簡單總結了一下這兩類系統建構的一些基本方法。

    求極致的關鍵是抓主要矛盾,再結合關鍵的科學理論和工程技術突破指標上的極致,形成緊耦合結構,最后整合所有技術,定制系統內部需要的部件。

    求通用系統在概念性上是一個多問題,需要對多個問題進行刻畫和描述;在結構上通常是松散耦合的,需要對工程結構做最優映射;在共同性上要克服短板,解決技術的時空局限性等問題。

    2

    從算盤、電子計算機走向HPC的繁榮之路

    接下來,我首先回顧一下計算系統的發展歷程。從工程科學的規律的角度,我們把視角拉遠一些,我們觀察到這樣一條曲線,從最早的算盤,發展到電子計算機,再到現在的高性能計算機,中間出現了三個頂峰,三個山坡。這三個頂峰分別代表機械計算工具、超級計算機和未來Z級計算機。比如我們最早的算盤,爬到了機械計算工具的頂峰,因為有了一些規律,走到了通用計算機的繁榮。但這些系統在演化的過程中,究竟需要什么樣的規律?這是我們需要思考的。

    我先來介紹第一個曲線,這是一個歷史的回顧,我們如何從算盤發展到通用的電子計算機。

    • 如果做一個簡單的羅列,人類歷史上第一個人造計算工具誕生于中國公元1200年前,在它出現之前,我們只有數學(算術),沒有Computing(計算)的概念。

    • 第二步,帕斯卡和萊布尼茲發明了機械式加法器(1642)和乘法自動計算機(1673)。

    • 第三步,1801年,杰卡德發明了首個可編程織布機——通過穿孔卡對織布機進行編程。

    • 第四步,1837年,巴貝奇設計了差分機與分析機,雖然在工程上沒有徹底實現,但已經可以完成非常復雜的計算,比如通過多項式逼近對數、指數和三角函數。

    • 第五步,1843年,世界上第一位程序員愛達設計了一個算法,用來計算伯努利數列的值。這是第一個利用計算機進行運算的算法程序。

    • 第六步,機械計算工具到了頂峰。二戰期間,圖靈為了破譯密碼設計出“圖靈甜點”解碼機。

    至此機械式計算工具達到了工程技術積累的巔峰,直到出現了三位偉大學者,他們的發明奠定了現代通用計算機工程科學的三大基石,分別是:

    • 在概念性上的圖靈機模型:提出了能夠自動執行程序的通用計算裝置的科學原理。

    • 在關鍵性上的馮諾依曼體系結構:為圖靈機的實現提供了一個通用的體系結構——所有計算機分為輸入設備、存儲器、運算器、輸出設備5個部分;采用存儲程序方式,將指令和數據存儲于同一存儲器。

    • 在共同性上的肖克萊晶體管:能夠實現計算機的數學基礎布爾代數的開關器件。

    從歷史的發展中,我們可以看出,如果工程技術僅僅是一個無限的經驗積累,大概會止步于機械計算工具的巔峰,也就是圖靈甜點機。

    第二條曲線,從超級計算機到高性能計算機時代。

    我們經常會混淆這兩個概念,想一想我們為什么會發明兩個名詞來說明一件事,可能就是對于計算工具,我們永遠希望它的計算速度越快越好。在歷史上,高性能計算裝置可以簡單分成三個時代:在 CRAY時代,通過部件的并行向量化來提高性能;在MPP時代,通過大規模并行和定制化組件,把機器性能做到極致;在機群時代,利用三大規律把一個高端的裝置變成通用的計算部件。

    這些過程是如何發生的?一個極致的計算裝置如何變成一個通用的計算裝備呢?

    從概念性、關鍵性和共同性三個方面來講,我們認為應該有以下三點變化:

    • 在概念性方面,要有一個牽引型的目標,也就是評價標準從求最大極值轉變為最大積分;

    • 在關鍵性方面,機群架構應該是松散耦合結構+標準化的部件;

    • 在共同性方面,性能工程要采用通用結構,并達到極致性能。

    我們超級計算機一般以單一的極限指標作為評價指標,任何一臺計算機,先設計一個目標,誰的性能更高,誰的技術就更強。在歷史上有很多這樣的指標,比如LINPACK(1993)、Graph500(2010)、Green500(2013)、HPCG(2014)、HPL-AI(2019)。追求這些單一指標的“極值”顯然不是求通用的一個驅動力。超算追求的是計算能力,也就是求一個點的“極值”,讓所有指標在訪存計算比和飽和性能的二維結構里,一條線達到最高。但真正的通用,是需要反映非常多的計算和訪存特性的,所以光一個點求最高是不夠的。那么,如果要造一個通用的容量計算系統,從線到面,我們就需要一個類似于“積分最大”的系統,高效支撐多種應用。這是第一個變化。

    第二個變化體現在關鍵性,也就是機群結構。機群結構需要有三個的基本條件,第一是結構是松散耦合的;第二是每個組件要可標準化。如果部件是定制化的,可能不能適應通用的應用場景;第三是高性能計算的要求,如果采用標準的組件一般不太容易建構出高性能的系統,所以還要有一系列性能可拓展的方法。三者加起來才能做到通用高性能計算機。時間關系,我們簡述一下標準化的幾個關鍵點。第一個是“造”標準化,把機群基礎軟硬件貨架化,包括軟件標準化、硬件標準化、互聯標準化;第二個是“送”標準化,讓用戶可以“容易”獲取算力;第三個是“用”的標準化,通過屏蔽不同層次的細節實現“用” 的目標。

    一般來講,從基礎庫和函數抽象,再到框架/領域編程方法來實現標準化,會帶來所謂的“軟件腫脹”,性能損失非常大,所以我們需要通過性能工程來獲取一個極致的性能,這也就是剛才提到的第三個變化。到目前,通用結構獲取極致性能的調優方法經歷了三個階段。早年使用的是單一模型方法,由圖靈獎得主Fra Allen在2006年提出的性能優化模型。后來隨著負載特征變得更加復雜,美國工程院院士Jack Dongarra設計出了軟件工程方法。而目前采用的多是智能調優技術,以應對更加碎片化的負載特征。

    3

    計算機系統的未來趨勢

    首先講一下通用計算系統,也就是計算系統如何變得“更通用”?我們認為主要是要形成“平臺型計算裝置”。計算機系統存在一個通用趨勢或規律,我們稱之為“X as a Computer”,就是每隔10年就會出現一類新的計算機系統,包括新的編程平臺、新的網絡連接,新的用戶接口,新的使用方式。它們更廉價,應用范圍更廣泛,形成了新的平臺型通用計算機裝置。

    如果我們把過去60年形成的規律加以總結,大致可以分成三個時代。

    首先是IT 1.0 時代,我們把專用計算裝置變成了高性能計算機(Calculator as a Computer,CaaC),服務國家部門實現了信息化;把專用的制表裝置變成了一個通用服務器(Tabulator as a Computer,TaaC),實現了企業的信息化升級。

    其次是 IT 2.0 時代,在這個時代里,人類社會和機器在現實世界有了交互,稱之為Communication時代。我們把專用辦公設備用到PC端實現了辦公信息化(Office as a Computer,OaaC);把專用通信設備移植到智能手機(Phone as a Computer,PaaC ),實現了消費者的信息化。

    我們現在正在一個“人機物”三元融合的萬物智能互聯時代,也可以成為IT 3.0時代。我們將為創造的各種設備,比如人造汽車,人造車床,智能硬件,提供一個“物端通用計算機(Thumb Computer)”。除了人造設備外,我們人體和自然物體也可以信息化(Body as a Computer)。這樣整個世界和物理世界統一同一個龐大的信息網絡空間里。

    按照上面的規律,我們發現在求通用設備的泛在演化的過程,形成了當前信息社會的五個成功的平臺型計算裝置:(1)用于關鍵部門的高性能計算機;(2)企業級服務器;(3)員工使用的PC;(4)大眾智能手機;(5)工控/武器裝備使用的嵌入式計算機。未來可能還會出現第六個平臺型計算裝備。

    第二,未來高性能計算這一類追求極致性能的系統的發展有哪些共性方法,是否有章可循?

    我們認為關鍵在于Z級計算機如何提高系統能效。當前求通用的高性能計算機撞上了一堵能耗墻,計算能力每增加10倍,能耗曲線就會上移一個臺階,也就是說,算力提升過程產生了巨大的能源消耗。2020年《Science》曾發表一篇文章,從新結構、新器件、新工藝和應用驅動四個維度總結了幾種創新解決方案。

    比如在工藝創新上,從現在的集成電路發展到集成芯片,利用Chiplet等技術突破單芯片晶體管數量的上限。

    在器件創新上,通過超導電子器件把高頻率運行系統的能耗降到最低。比如基于超導約瑟夫森結實現的布爾邏輯計算系統,運行頻率可以達到100GHZ,具有極高的能效。

    在模型創新上,通過自然計算將對應問題解演化為最低能量態。這里所說的自然計算,是利用相似性原理模仿自然規律,或利用物理材料,構建自適應、自演化的動力系統,近似求解傳統計算方法難于解決的高階復雜問題。

    在結構創新上,到底最少有幾個XPU?回歸到計算機科學的三個基本問題,思考巴貝奇自動計算問題、布什廣義關聯問題和圖靈測試問題,也許我們有三種基礎的xPU,比如SPU、DPU、NPU,通過三者組合能夠覆蓋所有應用場景的計算需求。其中,SPU結構可以解決計算訪存特征的差異性;DPU結構解決數據通路的全局有序控制問題;NPU能夠對機器學習負載運算加以抽象化,以及數據帶寬自適應的神經元。

    借用1991年 Bruce G. Buchanan發表的一篇報告,報告中提出任何一個計算系統都可以通過兩個維度,劃分成四個象限(橫坐標代表確定性和啟發式算法,縱坐標表示符號計算和數值計算),那么每個求通用系統、求極致系統都是其中的一個圓圈。如果我們把剛才提到的計算系統發展的3個時代、7個通用系統以及面向不同應用場景的求極致系統匯集在一張表格里,我們就可以從中發現每個系統的一個定位。

    最后,如果未來求極致的計算機系統實現了,下一個更加繁榮的通用系統會是什么?這個問題現在來看可能還太遙遠,但我們不妨做一個大膽的猜想,從工程科學的三個基本方法來看,我認為首先在概念上,“系統熵”會讓系統從無序變到有序,這是現在AIoT發展帶來的一種顯著需求。在關鍵性方面,未來的系統結構應該以數據為中心,實現數據處理的內構安全,我們用“高通量”來代表這類技術。最后在共同性上,我們要解決復雜系統的建模問題,并從過去以數據建模為核心的第四范式,轉向以建模復雜系統為核心的第五范式。

    這就是我今天報告的全部內容,謝謝大家。

    推薦閱讀

    GAIR 2021大會首日:18位Fellow的40年AI歲月,一場技術前沿的傳承與激辯

    2021-12-10

    致敬傳奇:中國并行處理四十年,他們從無人區探索走到計算的黃金時代 | GAIR 2021

    2021-12-09

    時間的力量——1991 人工智能大辯論 30 周年紀念:主義不再,共融互生|GAIR 2021

    2021-12-12

    未來已來,元宇宙比你想象中來得更早丨GAIR 2021

    2021-12-12

    雷峰網雷峰網

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有