青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

twzheng's cppblog

『站在風口浪尖緊握住鼠標旋轉!』 http://www.cnblogs.com/twzheng

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  136 隨筆 :: 78 文章 :: 353 評論 :: 0 Trackbacks

計算基礎正在發生根本變革——解讀“計算2.0”

 摘自CSND 作者:孟巖

從本質上看,軟件實際上只是夾在人與硬件之間的一個中間層,人們使用軟件的根本目的還是要讓硬件運轉起來為自己服務。硬件平臺如果長期穩定,軟件就能夠安穩發展,建起高樓大廈,硬件基礎如果打個噴嚏,軟件就會得一場感冒。過去十幾年來,我們的計算環境已經發生了很多變化,比如RISC的興起,大規模服務器集群的發展,SIMD的普及,特別是網絡的大發展,令人印象深刻。每一項變化都給軟件帶來一定程度的沖擊。不過大部分情況下,這種沖擊力度有限:只需要有一小部分人去關注就好了,他們會盡可能把這些變化包裝起來,從而使得其余的絕大部分人不受影響,而又能夠享受硬件發展帶來的免費午餐。比如說,RISC跟硬件平臺帶來的變革是非常巨大的,但是只有編譯器和操作系統開發者真正需要關注它。SIMDMMX3DNow!SSEx)的發展使普通計算機處理多媒體數據的能力獲得了本質提升,但是廠商們也推出了一系列封裝庫,使應用軟件開發者們在不需對開發方式做重大改變的情況下享受這些發展成果。

 

然而站在今天這個時間點上往前看,就會看到,情況在發生的變化。發生在若干個不同領域的硬件進展,幾乎在同時達到了可以被稱之為“本質變化”的狀態。而所有這些變化結合起來,則使我們面對一個自1980年代初PC崛起以來從來沒有過的局面,一個可以毫不夸張地稱之為“變革”的局面,我們稱之為“計算2.0。在“計算2.0的時代里,軟件開發者面對的平臺會發生巨大的變化,而且這些變化很多是非常本質的,無法簡單地使用“包裝”的手段屏蔽掉,從而要求軟件開發的實踐也必將隨之發生巨大的變化。這對軟件產業的每一個人來說,是歷史上很少會遇到的情況,給我們帶來巨大的挑戰和機遇。

 

下面就讓我們一起來展望一下“計算2.0將給我們帶來的沖擊。

 

1. 多核與并發編程

自從2005年初C++標準委員會主席Herb Sutter發表《并發的革命——免費午餐已經結束》的著名文章以來,多核已經成為整個軟件社群里熱門話題。在那篇文章里,Herb Sutter斷言說,CPU頻率的提高已經接近極限,摩爾定律的發展今后將依賴多核化進行下去,因此,軟件若要在未來的環境下生存,必須考慮并發問題。接著,Herb Sutter做出了更大膽和更驚人的語言,那就是不存在解決多核編程問題的銀彈,不存在可以簡單地將并發編程問題化解掉的工具,開發高性能的并行程序必須要求開發者從根本上改變其編程方法。從某種意義上來說,這不僅僅是要改變50年來順序程序設計的工藝傳統,而且是要改變數百萬年來人類順序化思考問題的習慣,其困難程度可想而知!

 

將近3年后的今天,Herb Sutter的預言似乎初步得到了印證。單核機器現在已經成了過時貨,并且很快就會加入古董的行列。而多核機器的價格正在迅速下降。如今花2萬塊錢人民幣,可以買下“三個8”的刀片服務器——兩個4核至強+8G內存+四塊200G硬盤。再過一段時間,這個配置中的每項數據都會翻番。如果說在雙核時代我們還可以假裝一切都沒有發生,那么當一臺機器上出現16個核的時候,敢于去忽略這種體系結構上的根本變革的人,一定是瘋子。

 

人們正在緊張地尋找著解決多核編程難題的方法。到目前為止,進展不太大。目前最理想的結果,就是類似Intel C++Intel Fortran這樣的編譯器,可以自動識別可并行化的循環運算,然后實施自動并行化。但是這距離全面并發還很遙遠。類似MPIOpenMP這樣的解決方案雖然早就存在,但是要得到普及難度不小。至于其他的一些常規方案,無非是優化多線程中的一些問題,比如無鎖數據結構嘗試避免加鎖和解鎖帶來的巨大開銷,而事務型內存也是為了優化多線程程序共享資源的性能和可靠性。專門為并發系統設計的語言Erlang,被很多人視為多核時代的Java,但是Erlang的長項在于并發任務的分發和同步,用它來處理計算密集型的任務,如圖形圖像多媒體處理和數值計算,效率之低令人無法接受。也許把Erlang當成計算的dispatcher,而讓每個核上都繼續以傳統的單線程方式運行C程序是解決這類問題的辦法。但是所有這些方法,都首先要求將任務分解成可同時并行的多個單元,并且將并行計算中的若干問題定義清楚。也就是說,這些方法都無法解決那個最大的挑戰:人的思維方式轉變問題。不改變我們編寫應用程序的傳統線性思維,所有這些工具都沒有太大幫助。毫無疑問,這是擺在我們面前的最大難題之一。

 

2. 新計算設備

寫作此文時,Amazon剛剛發布了電子書閱讀器Kindle,這款產品的出現,基本上等于宣告電子閱讀時代的降臨,它所將引起的沖擊必將是劃時代的。然而對于開發者來說,它卻只不過是在一個已經很長的新計算設備名單里又加上了一項。這個名單中包括:PS2/3,XBox/XBox360Wii, Tivo,Game Boy、Game Boy AdvancePSP,iPhone,Windows Mobile,SymbianLinux Mobile,BlackberryiPod,車載導航儀,當然,還有最最激動人心的機器人。有人大而化之將它們統稱為“嵌入式設備”,然而這是一個非常具有誤導性的說法,這些設備中的每一項都不是傳統意義上的“嵌入式設備”,而是更接近于計算機的通用計算設備,更確切的說法應該是“專用的通用計算設備”。

 

僅僅十幾年以前,我們可以安全地認為,世界上每臺計算機都是PC,每臺PC都用X86 CPU,都安裝了DOS/Windows。隨著最近幾年來新的計算設備如雨后春筍般涌現,PC包打天下的時代已經一去不返,這一點已經非常清楚不過了。

 

然而,軟件開發者并沒有從過去20多年形成的單一平臺迷思中擺脫出來。在軟件系統開發中合理運用多平臺特長,充分注重可移植性的思維尚未形成,大部分應用還是為傳統PC平臺開發的。這一點顯然已經落后于時代的發展。當然,這也就給那些有識之士提供了難得的機遇,充分利用多平臺整合的優勢,就可以開發出革命性的新型應用。

 

3. GPGPU

CPU——中心處理單元,計算機的核心和大腦,一切的一切的主宰。”

 

教科書上這么告訴我們。

 

很遺憾,這種說法早就不是事實了。自從類似DMA這樣的技術出現,CPU就在不斷地“減負”。事實上一臺計算機里有許多塊不同的芯片,它們各自有各自的絕活,讓整臺計算機高速運轉。不過,不管怎么說,CPU還是整臺電腦里最強有力的中心,它最強大,最能干。對嗎?

 

很遺憾,連這個說法也變得非常脆弱了。在那些裝備有高級圖形卡的電腦玩家的機器中,CPU已經不是最強大的計算單元了,取而代之的是GPU

 

GPU原本只是為了進行3D圖形加速而誕生的芯片,由于其專用性,體系結構較之CPU大大簡化,從而可以高度優化設計,進行大規模的浮點數并行計算。當代GPU在這方面的性能遠遠超過了CPU。在浮點數計算速度上,NVIDIA最新的GPU超過Intel最快的CPU10倍以上,而據稱,這一差距在未來幾年內會達到數百倍。單就這一點來說,GPU早就是計算機中最快的芯片了。

 

然而,由于GPU的專用性,大部分通用計算任務是無法用GPU來完成的。例如,連最最簡單的分支語句,GPU都無法完成。因此,GPU永遠不可能取代CPU。但是,GPU強大的計算能力如果僅僅給高性能圖形程序和游戲來使用,也無疑是一種巨大的計算資源浪費,有沒有可能將GPU的計算資源暴露給應用程序員,由他們將適合于GPU計算的任務轉交給GPU完成,而把CPU解放出來干CPU擅長的工作呢?沒錯,這就是通用GPU計算(General Purpose GPU computing)的宗旨。

 

眼下,NVIDIAAMD(不久前收購ATI)都在加速推出對GPGPU開發的支持,而據傳Intel也將在2008年推出自己的獨立顯卡,加入戰局。這也就意味著,不出幾年,每臺電腦里都會存在兩個強大的計算單元,一個是CPU,一個是GPU。軟件開發人員將面臨新的挑戰——只有把任務合理地分配給CPUGPU,并且進行統一調度,才能夠達到效率上的最佳化。此外,那時候的CPU8個或更多的核,而GPU本身更是高度并行化的計算單元,計算任務不僅要合理分布,還需要充分并行,這其中蘊含的挑戰之大,足夠令人心驚膽寒。然而,也正正創造了英雄橫空出世的條件,誰能夠橫刀立馬,誰就能功成名就。

 

4. 無處不在的網絡

回到Kindle,這個產品最有趣的部分在于,你可以隨時通過無線網絡下載你想看的書,而且這些下載的書被保存在網絡上你的一個私人空間里。你永遠不會買不到想要的書,也永遠不用擔心家里太小,放不下這些書。如果你的Kindle丟失了或者你想換一臺,沒關系,你龐大的圖書館會毫發無損。

 

你覺得怎么樣?非常好,對嗎?但這需要一個條件,一個重要的條件——無所不在的網絡,特別的,無所不在的無線網絡。

 

不出幾年,將不會再存在Internet的死角,在任何地方你都可以高速訪問Internet。對軟件開發者來說這意味著什么?這意味著很多過去慣用的軟件設計思路將不再是最優的了,關于網絡訪問限制的很多擔憂也變得不必要了。應用可以保證永遠連網,用戶數據也最好保存在網絡上,密集的計算任務交給網絡上的高速節點來執行,可能比本地執行更快。一言以蔽之,網絡計算將全面取代單機計算,無論是對PC來說,還是對各種各樣的小設備來說。

 

更重大的變化可能來自人們的生活方式,當互聯網——這個目前世界上規模最大、最自由的網絡——無處不在并且速度飛快的時候,其他的通信網絡還有存在的必要嗎?我們還需要使用中國移動的專有網絡并且每個月為之付出不菲的費用嗎?我們還需要忍受諸如“腦白金”那樣的爛廣告和矯揉造作的爛主持人嗎?我們還需要買日報和雜志嗎?可能都不需要了?;ヂ摼W就是電視,互聯網就是電話,互聯網就是報紙,一切媒體歸于互聯網。這種局面會給人類的生存方式帶來一個重大的變革,在其中蘊含著巨大機會、挑戰和財富。在這個意義上,Google的成功只不過是一個序曲而已。

 

如上所述,相信您已經意識到我們處在一個怎樣的變革當中!令我們興奮不已的是,軟件開發者在這個變革中處于前鋒的位置,我們準備好了嗎?

在多核CPU上的多線程并行程序設計,究竟應該被稱為“并行(parallel)”還是“并發(concurrency)”,并沒有統一的認識。通常將“并行”定義為在多個計算單元上同時執行多個任務,而將“并發”定義為在單個計算單元上以分時的方式“同時”執行多個任務,由于多核CPU有多個計算單元,因此似乎成為“并行”更加合適。但又因為單個多核CPU對外只表現為一個計算單元,因此似乎“并發”也很合適。對這個問題缺乏統一的認識。從軟件開發上來看,無論是否執行在多個核上,編程方法本身必須發生變化,這種變化了的編程方法通常被稱為“并發編程”,表明這樣方式編寫的程序既可以跑在多個計算單元上,也可以以分時的方式執行在一個計算單元上。

posted on 2007-12-01 00:09 譚文政 閱讀(282) 評論(0)  編輯 收藏 引用 所屬分類: 電腦常識
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品嫩草99a| 99re热这里只有精品免费视频| 一区二区不卡在线视频 午夜欧美不卡在| 国产午夜精品一区二区三区欧美| 亚洲日本在线观看| 国产欧美日韩精品丝袜高跟鞋| 久久男人资源视频| 欧美成人一区二免费视频软件| 欧美大片在线看| 欧美日韩视频免费播放| 国产精品久久久久久久久久免费看| 国产精品一区二区久久国产| 好看不卡的中文字幕| 亚洲人体偷拍| 午夜久久电影网| 免费欧美在线视频| 夜夜精品视频一区二区| 亚洲欧美日韩一区二区三区在线| 久久精品在线视频| 欧美久久一级| 国产一区亚洲| 欧美国产日本| 国产精品婷婷| 99re这里只有精品6| 欧美影院成人| 最新国产成人在线观看| 国产精品99久久久久久久女警 | 亚洲福利视频专区| 一区二区三区四区五区在线| 久久精品在线视频| 亚洲毛片av| 美玉足脚交一区二区三区图片| 国产精品九九久久久久久久| 91久久久久久国产精品| 久久久一区二区三区| 一区二区三区四区在线| 久久久人成影片一区二区三区 | 国产精品久久77777| 在线日韩视频| 久久成人一区二区| 亚洲美女电影在线| 蜜臀va亚洲va欧美va天堂| 国产欧美精品va在线观看| 一区二区三区日韩欧美| 亚洲国产成人porn| 久久久国产成人精品| 国产精品一区二区在线观看| 亚洲少妇中出一区| 狠狠色狠狠色综合日日五| 亚欧成人在线| 一区二区三区欧美在线观看| 欧美日本亚洲| 久久综合久色欧美综合狠狠 | 最新国产精品拍自在线播放| 噜噜噜噜噜久久久久久91| 欧美一区视频在线| 国产情侣久久| 欧美一区二区三区婷婷月色| 宅男在线国产精品| 国产精品黄色在线观看| 亚洲欧美中文日韩v在线观看| 99精品免费网| 国产精品久久久久aaaa九色| 亚洲一区二区三区在线视频| 夜夜爽99久久国产综合精品女不卡 | 亚洲午夜在线观看| 国产精品99免费看 | 亚洲自啪免费| 亚洲欧美99| 国产日韩欧美精品在线| 久久久久国产精品厨房| 久久激情五月婷婷| 影音先锋在线一区| 亚洲高清资源| 国产精品成人国产乱一区| 亚洲专区免费| 午夜视频久久久久久| 很黄很黄激情成人| 亚洲高清视频一区| 国产精品爱啪在线线免费观看| 欧美一区国产一区| 久久久夜精品| 一区二区三区四区精品| 亚洲一区二区在线视频 | 亚洲欧美日韩另类精品一区二区三区| 日韩一区二区高清| 国产欧美日韩在线| 免费欧美在线视频| 欧美视频一区二区三区在线观看| 亚洲欧美中文在线视频| 久久久av水蜜桃| 在线视频欧美日韩精品| 欧美一级网站| 一本色道久久88综合亚洲精品ⅰ | 欧美一区二区三区在线播放| 欧美特黄视频| 亚洲永久字幕| 亚洲免费精品| **欧美日韩vr在线| 一区二区欧美日韩| 亚洲福利小视频| 亚洲影院在线| 日韩视频在线永久播放| 久久精品成人一区二区三区| 一区二区三区四区五区精品| 久久成人精品| 亚洲欧美日韩成人| 久久综合九色综合欧美就去吻| 亚洲桃色在线一区| 美女视频网站黄色亚洲| 久久av一区| 国产精品国产成人国产三级| 欧美国产日韩在线| 国产欧美日韩综合一区在线播放| 亚洲精品日韩久久| 亚洲国产精品第一区二区三区| 欧美亚洲一区二区在线| 在线中文字幕一区| 欧美.www| 女人色偷偷aa久久天堂| 国产日韩精品一区二区浪潮av| 日韩视频一区二区三区在线播放免费观看 | 亚洲深夜福利在线| 日韩视频一区二区| 久久蜜桃资源一区二区老牛| 午夜精品久久久久久久久久久久久 | 美女精品自拍一二三四| 欧美在线免费观看| 欧美性色视频在线| 一本色道久久综合亚洲精品不卡 | 欧美中日韩免费视频| 欧美日韩国产另类不卡| 欧美高清视频在线观看| 国语自产精品视频在线看一大j8| 亚洲午夜女主播在线直播| 一本色道久久综合精品竹菊| 欧美精品久久一区二区| 亚洲国产精品va在线看黑人| 在线观看成人网| 久久九九久精品国产免费直播| 久久国产精品网站| 国产自产精品| 欧美 日韩 国产精品免费观看| 国产精品区二区三区日本| 宅男在线国产精品| 欧美日韩国产小视频在线观看| 欧美激情一级片一区二区| 久久综合给合| 亚洲一级在线观看| 亚洲国产精品久久| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲欧洲av一区二区| 欧美激情一二区| 一区二区高清视频| 欧美极品aⅴ影院| 亚洲福利视频一区| 久久亚洲影音av资源网| 久久久噜噜噜久久狠狠50岁| 韩曰欧美视频免费观看| 久久久另类综合| 欧美福利电影在线观看| 亚洲精品视频免费观看| 欧美日韩国产在线一区| 亚洲私人黄色宅男| 欧美专区在线播放| 亚洲福利在线观看| 欧美日韩亚洲网| 亚洲视频第一页| 久久黄色网页| 亚洲黄网站在线观看| 欧美激情网站在线观看| 亚洲一区999| 欧美a级理论片| 亚洲一本大道在线| 国产午夜亚洲精品羞羞网站| 久久精品视频网| 亚洲欧洲久久| 亚洲欧美视频在线| 亚洲国产色一区| 国产精品美女久久久| 久久久久免费视频| 日韩午夜在线观看视频| 久久国产精品久久久久久| 最新成人av在线| 国产伦理一区| 欧美日本中文字幕| 欧美影视一区| 一区二区三区欧美在线观看| 女人香蕉久久**毛片精品| 午夜在线播放视频欧美| 欧美日韩国产一中文字不卡| 久久婷婷亚洲| 亚洲免费在线播放| 亚洲精品视频在线| 欧美成人在线网站| 久久精品亚洲一区二区| 午夜精品久久久久久久99热浪潮| 亚洲免费电影在线观看| 亚洲宅男天堂在线观看无病毒| 欧美一级久久久久久久大片|