999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件滯后制約多核應用

2006-07-27 10:49:50何正未
計算機世界·技術與應用 2006年21期

何正未

多核處理器將成為一種廣泛普及的計算模式,影響企業和消費者用戶的使用模式。它通過為工作負擔較重的場合提供顯著提升的性能,來促進服務器/工作站業務環境的發展。然而,要想真正突顯多核處理器帶來的高效率,軟件的發展得跟上硬件的步伐。

在多核處理器如火如荼發展,硬件制造商不斷推出新產品的時候,軟件業卻遠遠沒有來得及為此作好準備。只有在軟件能夠充分利用多核處理器的特性時,多核處理器優勢才能體現出來。當前,多核處理器軟件開發商面臨著技術和商業問題,軟件界缺少為多核處理器進行高效編程的標準工具,缺少開發并行應用所需的技巧。

負責IBM多內核、多線程Power5服務器處理器設計的Balaram Sinharoy指出,現有軟件只能在集成2到4個內核,而且每個內核只有兩個線程的處理器上發揮性能優勢。

多核處理器軟件代碼優化也對編譯器和應用程序開發工具提出了挑戰。面向多核處理器,業界需要通過努力改善軟件設計來使應用程序長期優化和效率提高。

同時,多核處理器將成為一種廣泛普及的計算模式,影響企業和消費者用戶的使用模式。它通過為工作負擔較重的場合——尤其是那些已經在使用多線程應用的場合,提供顯著提升的性能,來促進服務器/工作站業務環境的發展。例如數據采集、數學分析和Web服務。多核處理器還將在推動虛擬技術和PC安全性方面起到關鍵作用。

下面就多核處理器軟件和應用的若干問題進行簡要分析和討論。

操作系統: 支持多核的版本

業界各大主要操作系統廠商正在準備推出相應的操作系統,以支持上市的雙核/多核處理器產品。預計目前市場上現有的各主要操作系統都將推出新的版本。支持多核處理器的操作系統包括: Microsoft Windows、Novell和Red Hat Enterprise Linux 發行版,以及Sun Microsystems公司的Solaris 10。其中有些操作系統還將包括專門支持應用的優化程序,以充分發揮多核功能的優勢,從而改善一系列應用的性能。

QNX公司最近推出了一個多核版本的開發工具。該公司聲稱它的操作系統軟件結構有助于多核處理,能夠為所有多處理模型提供支持。該軟件包是對OS內核做了某些改動的現有產品的組合。通過該軟件,用戶將能把現有代碼遷移到一個多處理器環境下。QNX支持非對稱多處理、對稱多處理和限制多處理模型。對于前者,將運行多操作系統實例(不一定是同一操作系統),每一個物理處理器上運行一個。資源在操作系統之間被完全管理。在對稱處理時,惟一的操作系統實例運行在多個CPU核上。用戶能漸進地遷移現有應用程序,開始將特定任務分配給專用的CPU核處理,隨后朝對稱多處理模型轉移。用戶還能使用一種稱為“限制多處理”模式,在這種模式下,可以把關鍵任務與線程,或者為單核操作編寫而又不想重寫的任務分配給指定的處理器,在該處理器上它們將在自己的空間中運行。軟件在運行時能在這種配置下執行受控或動態負載均衡。

另外,在部分廠家提出的單級單映像編程模式下,盡管實際上有多個內核、多項任務同時運行,處理多個數據包或單元,程序員也將其抽象為一個單獨的、順序的編程實體,此時,需要由操作系統或內核軟件負責所有必需的核心間的協調工作。這些內核軟件為程序員提供統一的機制來管理處理器中的所有資源。

隨著時間的推移,操作系統的調度程序必須設計得更復雜。當然,隨著軟件性能的提高,它將允許在每個裸片上集成更多可支持更多線程的內核。

編程模式: 抽象層、核心間通信、可編程性

多核處理器需要一個抽象層來管理并行機制,允許重新定向應用、分配負載并管理功率。需要隱藏軟硬件細節的新型編程模型。

當前,多內核設計正在推動我們朝向“處理器海洋”結構,可能包含成百上千個處理器。然而,為一個處理器編寫的軟件幾乎無法與另一個端接。這是因為編程模型瞄準的是單一處理器和單一線程。Imperas公司CEO Simon Davidmann認為,目前需要的是能夠提煉出硬件和軟件細節的編程模型,以及將平臺應用編譯實現自動化的途徑。

多內核處理器的主要挑戰之一是如何將軟件應用映射到日益復雜的硬件內,即編程模型和它所提供的效率。一個優良的編程模型應具有很高透明度,能對程序員隱藏盡可能多的硬件細節。在GSPx 2005研討會上,Ignios公司首席技術官(CTO) Mark Lippett指出,現在需要的是“平臺抽象層(platform abstraction layer)”,用于將軟件應用映射到硬件上。Ignios在其SystemWeaver產品內提供這種層。

核心間通信開銷是在進行多內核處理器編程時需要考慮的又一重要因素。對于一個將任務分割到多個內核上的應用而言,軟件模塊或任務間的通信效率(如通信建立時間、需要傳輸的數據量、傳輸速度、以及抵達時間的可預測性)是至關重要的。

需要傳輸的數據量取決于應用類型和應用分割。而傳輸效率和可預測性則與通信(軟件)架構和系統中使用的硬件互聯類型有關。硬件互聯提供的靈活性可能有限,但分割和通信軟件的選擇權通常掌握在設計人員手中。一種用于核心間通信的高效靈活的軟件架構能夠快速地和可預測地傳輸數據、管理多個邏輯連接和不同種類的硬件互聯、同步傳輸以及為應用提供一個抽象層。

當今的大多數操作系統是設計運行在單核處理器上的。并行多處理技術在操作系統處理負載均衡任務上比較簡單,但是對非對稱多處理要把任務分配到多個線程上的工作留給開發人員,這給可編程性帶來了挑戰。比如,由于操作系統在一定程度上分擔了芯片的復雜性,STI開發的Cell處理器可被用作具有XML或TCP處理功能的加速器或卸載處理器,但其他的編程模式可能要求用戶了解用于PowerPC的各種編譯器及位于其下的多個專用核。

也有廠家提出的解決方案支持單級單映像編程模式。即盡管實際上有多個內核、多項任務同時運行,處理多個數據包或單元,程序員可將多處理器抽象為一個單獨的、順序的編程實體。

編譯器: 開發多級并行

為多處理器或多線程環境設計的應用軟件通常能夠利用多核處理器結構優勢。但同時,當軟件為多核處理器得到最優化時,業界將期望看到通過發揮基于多核處理器系統結構優勢的軟件創新方法,來提高應用程序總性能。

編譯器和應用程序開發工具將為多核處理器優化軟件代碼發揮重要作用。編譯器將承擔更大的責任,面臨更大的挑戰。面向多核處理器,通過努力調校軟件設計使能長期優化和效率提高。Intel 正在從事有助于為多核結構優化線程性能的編譯器和軟件工具的引入。

單線程應用不會自動在多內核系統上運行得更快。普遍使用的C和C++在本質上是順序執行語言。因此,當把一個用C或C++編寫的應用程序移植到多內核系統上時,該應用也許并不能從多內核平臺的并行處理能力中獲益。

在應用程序中,一般有四種并行可供挖掘:

● 指令級并行ILP: RISC核心的指令亂序執行、超級標量(多個執行部件),一般在核心內實現;

● 數據級并行DLP: 比如SIMD,支持MMX、SSE、SSE2、SSE3等,通常也在核心內實現;

● 線程級并行TLP: 比如Intel的超線程(HT),多核處理器。一般采用OpenMP、MPI方式編程。如何充分挖掘應用程序的線程級并行性,是多核處理器獲得高性能的關鍵點之一;

● 進程級并行PLP: 處理器之間、進程間通過消息傳遞進行通信,一般采用MPI編程方式。

Amdahl 定律指出,應用程序的并行加速來自于其可并行化部分。串行代碼制約著可擴展性,如何挖掘應用程序的多級并行性,是編譯器必須考慮的主要問題之一。

開發工具: 功能調試、性能優化

調試多內核系統比調試單處理器系統更為復雜,而且可能會影響到應用。在多內核系統中如果其中一個內核或子系統停止工作,系統狀態的檢測就變得很復雜,因為其他內核可能正在與停止運作的內核進行數據傳輸。一些內核會使其外設與內核一起停止工作,這使得內核之間通信狀態很容易被檢測出來。一個允許設計人員控制系統中哪些部分應被停下來進行調試和控制傳輸中數據的多內核調試器是必不可少的。

調試工具、優化程序正在演進。Intel就是在網上提供多內核工具的一個例子。該公司啟動了一項名為“線程技術使能”(Threading Enabling)的計劃,這項計劃提供以下工具:

● 性能分析器,開發人員利用它可以分析代碼,發現數據流可以進行優化的區域;

● 常用函數和子程序優化代碼庫,這使開發人員可以提取函數,因此完全跳過編寫函數和優化函數的工作;

● 專為多內核程序開發的編譯器;

● 一種叫做“線程檢查器”、用于發現線程互動中潛在沖突的工具。

由于C和C++不能在語言級為應用分割提供任何支持,應用/算法分割可在任務(系統)級完成。運行時平臺(操作系統及內核間通信)通過在內核間重新分配任務實現此項功能。為獲得最佳效率而進行的精細分割(任務/算法分割)可以采用代碼分割工具來完成。

并行應用程序: 培養編程能力

多核處理器在結構上提供了獲得性能優勢的創新,但也影響到已有的軟件部署和開發人員技能。如果想在多核處理器上提升性能的話,很多應用程序必須并行化。從某種角度上說,當前多內核開發的關鍵與多處理器系統是一樣的: 謹慎開發多線程應用程序(即不同部分可以同時運行的程序),使線程不相互干擾。

多核處理器的發展將迫使各級IT專業人員提高自己的技能,要將多處理概念更深入地植入到他們的計算意識中。許多企業通過培育在任何多核處理器環境中茁壯成長的各種技能,特別是編寫多線程應用程序的能力,來確保自己處于有利地位。業界普遍需要更好的編程教育,因為今天的大多數編程是以黑盒子方式完成的。

Carnegie Mellon大學教授Babak Falsafi指出: “我們將看到一種變化,即我們從一開始就教授并行技術。這將是一種漸進式的變化,可能需要十多年時間,但是最終,多內核處理技術將推動一種確保多線程和并行技術成為基本技能的變化”。

軟件許可: 如何計費

一個芯片還是兩個芯片?軟件廠商如何收取多內核芯片的費用仍是激烈爭論的問題。

在計劃向多核處理器移植時,軟件廠商對應用程序的授權方式是需要考慮的另一個關鍵因素。目前,許多企業級應用程序廠商依據核心數(by core),而不是插槽數(by slot)進行授權。這就是說,一個雙插座、雙核服務器能比一個雙插座、單核服務器提供更高性能,原因是應用程序能夠識別4個處理器(而不是2個),所以授權費用也將翻番。在基于多核處理器的系統中,增加的授權費用將抵消潛在的性能提高。由于多核處理器不是線性可擴展的(這意味著,增加一個核,不會獲得100%性能提高),翻倍的授權成本將導致較低總性價比。

由于這個原因,用戶在評估哪些應用程序可以移植到使用多核處理器的系統中時,軟件授權是必須考慮的一個關鍵因素。比如,企業軟件授權成本要高于提供應用程序運行的服務器成本,這是值得關注的。這對那些區別于專門服務器,在低價點提供卓越性能的行業標準服務器來說,顯得尤其重要。盡管大多數應用程序廠商沒有表態,但有些廠商已經采取按插座數,而不是按核心(core)數授權策略。

雖然所有的服務器在不久的將來都將采用雙內核技術,但是軟件許可收費方式卻遠未統一。實際上,3家最大的軟件廠商采取了不同的許可方式。IBM將根據不同的情況做出許可決定,Oracle將雙內核芯片算為兩個芯片,微軟則打算將雙內核芯片作為單個芯片來對待。

IBM在收取軟件許可費時,將x86雙內核芯片視為一個處理器。但是,隨著芯片的改進,IBM可能會改變收費計劃,將雙內核算為兩個芯片。一位IBM發言人說,公司將根據客戶報告的芯片性能,“不斷地評估”其許可方式。

Oracle的許可政策目前還是按照處理器核心收費。Oracle全球許可與價格戰略副總裁Jacqueline Woods認為,盡管雙內核目前可能不能提供兩倍的性能,但它未來可能將提供兩倍或更高的性能提升。Woods說: “當這些芯片的性能改進時,我們的價格保持不變,因為我們在這個領域中是中立的。”Oracle在2005年底又制訂了0.25(針對UltaSPARC T1)、0.5(針對Intel Xeon或AMD Opteron)及0.75(針對其他多核心處理器)等3級系數值模式新版授權方案。

“到底該怎樣收費?這的確是個復雜的問題,英特爾、IBM、微軟、甲骨文及其他很多公司將不得不就此達成協議,”惠普公司服務器部資深技術專家Michael Krause表示,“現在,惠普公司已經有人著手研究此問題。這是多內核產品上市的最大問題之一,而目前業界尚無對策。”

也有專家提出放棄計算物理處理器的個數,轉而采用根據一個獨立應用程序運行在芯片上的時間量收費。

多內核芯片是否將從根本上改變用戶支付軟件費用的方式,仍需拭目以待。一些人認為,軟件廠商可能必須向開放源代碼價格模型發展,從維修和支持服務而非從按處理器個數收費獲得收入。

數字化生活: 更豐富

5~10年前,大多數人使用PC運行文字處理和電子表格程序,上因特網沖浪,玩游戲。時至今日,中檔PC已能很輕易地提供所需性能。但是,多年來,人們已經大大擴展了在計算機上所能做的事情。今天,我們常常使用數字視頻操作和數字照片軟件應用程序,并且新游戲程序處于現實生活模擬的邊界。這些激動人心的進步需要高性能PC來運行最新的、詭異的應用程序。

多核處理器使數字化生活成為可能。數字媒體娛樂,或數字生活,是一個激動人心的概念,目前微軟、IBM和其他一些公司在合作開發。這個即將到來的進步將允許消費者在家中真正體驗豐富的數字媒體。他們需要重要的計算機處理性能和多任務能力。多核的PC能提供這些性能和多任務能力,并將使他們成為數字家庭的中心。例如,在家庭里,多核PC能和電視無縫集成。基于多核PC承擔的無線家庭網絡的集線器,父親能在起居室通過Web沖浪,女兒在她的臥室下載、播放MP3音頻文件,兒子在廚房使用新型游戲設備玩游戲。所有這一切,都是多核處理器平衡高性能和多任務所帶來的益處。

然而,目前多核處理軟件總體滯后于硬件,軟件面臨諸多新挑戰。但同時我們也應該看到,挑戰和機遇并存,多核處理技術將會持續在軟件演進中發揮重要影響,并和先前的高端并行處理技術一道,推動軟件并行技術的發展。在出現多核處理器技術之前,SMP系統和超線程技術一直在推動眾多操作系統和應用軟件廠商設計出能夠發揮多線程性能優勢的軟件。當基于多核處理器系統進入主流并不斷發展后,操作系統和應用軟件廠商將面向多核結構優化他們的產品,這將促進軟件效率提高,獲得潛在性能提升。

需求帶來發展,而發展又是基于技術的。通過若干年向大眾市場的發展和擴散,高端計算并行處理技術將不斷促進多核處理器硬件、軟件、應用技術的發展。無論帶來的是問題還是機遇,多內核處理器的時代已經來臨。

鏈接

虛擬化和安全: 更上一層樓

虛擬化是指使用軟件的方法,通過提供多處理器“幻像”,來使工作負載共享處理器。虛擬化正在流行。虛擬化在未充分使用資源間平衡負載,使為峰值狀況下預留的性能開銷需求、為管理多余硬件的需求降到最低。虛擬技術的發展能夠為多核處理器提供更好的保護、更高的資源使用率和更可觀的商業運算市場價值。

多核處理器非常適合幫助公司實現虛擬化,因為它們提供了性能增長。正是由于這個原因,傳統上在大型主機上的虛擬化技術正逐漸向普通服務器甚至桌面系統轉移,而硬件輔助虛擬化也改變了一直以來主要通過軟件來實現虛擬化的現狀,性能、效率和可靠性都有提升。

在多核處理器的幫助下,用戶可在整個公司范圍內簡單地實現虛擬化。虛擬化可以在相同的服務器上運行不同的操作系統和應用程序,大大節約了硬件實現。多核處理器將促使虛擬化技術更廣泛應用,并獲得巨大成功。

在安全性成為至關重要問題的今天,同樣,一些旨在阻止病毒和其他網絡威脅的、更加復雜的實時安全應用可以在后臺運行,為平臺提供額外的安全性,從而提供更加健全的保護。利用多核處理器,安全性的提高將對最終用戶完全透明。

主站蜘蛛池模板: 国产一区二区三区免费观看| 欧美日韩国产在线播放| 欧美a在线看| 九九热精品在线视频| 狼友视频一区二区三区| 国产精品太粉嫩高中在线观看 | 天天干天天色综合网| 亚洲高清免费在线观看| 18禁影院亚洲专区| 狠狠色狠狠色综合久久第一次| 国产喷水视频| 国产一区二区丝袜高跟鞋| 中文字幕在线看| 欧美在线综合视频| 在线免费a视频| 一区二区理伦视频| 精品国产一区91在线| 久久精品中文无码资源站| 伊人福利视频| 国产亚洲精品97在线观看| 欧美在线网| 欧美精品v日韩精品v国产精品| 精品久久久久成人码免费动漫| 国产视频一二三区| 亚洲高清无码精品| 国产精品理论片| 国产三级精品三级在线观看| 亚洲色图欧美视频| 久久www视频| 日韩精品亚洲精品第一页| a国产精品| 欧美午夜性视频| 女人毛片a级大学毛片免费| 视频二区国产精品职场同事| 巨熟乳波霸若妻中文观看免费| 国产主播喷水| 国产欧美日韩在线一区| 伊人久久久大香线蕉综合直播| 黑色丝袜高跟国产在线91| 亚洲视频色图| 精品国产Av电影无码久久久| 亚洲视频免| 亚洲视频a| 亚洲欧洲美色一区二区三区| 思思99思思久久最新精品| 欧类av怡春院| 黄色在线网| 99热线精品大全在线观看| 一本大道东京热无码av| 日韩精品一区二区三区中文无码| 亚洲av无码人妻| 国产亚洲欧美日韩在线观看一区二区 | 天天摸夜夜操| 亚洲精品高清视频| 手机在线国产精品| 黄色网站不卡无码| 色九九视频| 高清欧美性猛交XXXX黑人猛交| 福利一区在线| 国产99免费视频| 国产色爱av资源综合区| 四虎永久免费地址| 国内毛片视频| 全免费a级毛片免费看不卡| 最新国产网站| 欧美高清三区| 中文字幕免费播放| 高清大学生毛片一级| 一本久道久久综合多人| 欧美日韩国产一级| 一本大道无码日韩精品影视 | 黄色成年视频| 国产无码高清视频不卡| 国产网友愉拍精品| 黄色污网站在线观看| 亚洲国产精品无码久久一线| 97久久精品人人| 国产成人综合久久精品下载| 国产无码精品在线播放| 久久久久亚洲精品成人网 | 午夜欧美理论2019理论| jizz在线观看|