當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 黑龍江OA系統(tǒng) > 哈爾濱OA系統(tǒng) > 哈爾濱OA軟件行業(yè)資訊
高性能計算的免費午餐結(jié)束了嗎?
可擴展性地位逐步提升
一直以來,在高性能計算領(lǐng)域,開發(fā)可擴展的應(yīng)用對程序員來說非常重要,如今多核心處理器的繁榮發(fā)展更讓這成為了數(shù)以百萬的程序員們的首要任務(wù)。此前,有種擴展性很好的高性能計算程序――“高度并行(embarrassingly parallel)”,簡稱EP計算。但人們必定不會僅僅滿足于“足夠好”的并行。任何擴展及能夠保持?jǐn)U展的設(shè)計將是至關(guān)重要的。如果程序無法適應(yīng)未來的擴展性要求,高效的設(shè)計也將不再重要?!扒罢靶詳U展”將成為一個好的程序設(shè)計的關(guān)鍵組成部分。少一些EP將成為程序員的規(guī)范。
人們開始轉(zhuǎn)向多核處理器,意味著今后程序員需要運用新技術(shù)來編寫可擴展的應(yīng)用程序,并接受新觀念以取得應(yīng)用性能的進(jìn)一步提高。過去,隨著處理器時鐘頻率的提高,即使是一個寫得不好的應(yīng)用程序速度也會提高。但現(xiàn)在情況不同了,多核處理器已經(jīng)成為現(xiàn)實,一個寫得不好的并發(fā)應(yīng)用程序的速度是無法提高的?,F(xiàn)今的程序員需要“并行思維”,編寫并行程序以更多的挖掘多核處理器的潛力。
并行思考且并行編寫程序是件很不容易的事。正如計算機科學(xué)教授Andrew S.Tanenbaum近日在08年的USENIX會議上所說,“順序編程已經(jīng)很難了,但并行編程比它更難”。顯然,隨著未來新一代架構(gòu)的發(fā)布,我們不愿一遍又一遍的執(zhí)行這些艱難的任務(wù)。未來的擴展就提供了一種避免做大量重復(fù)工作的方法。
免費的午餐
正如C++程序設(shè)計領(lǐng)域屈指可數(shù)的大師之一Herb Sutter幾年前所講的,“免費的午餐結(jié)束了”,程序員不能再指望不斷提高的時鐘速率來加速應(yīng)用了。那么是否有一道新的免費午餐出現(xiàn)呢?顯然程序員希望通過一種方式,讓他們今天投入的時間和精力能夠在未來獲得最大化的長期投資回報。
一些人認(rèn)為擴展性就是新版的免費午餐。在發(fā)布新架構(gòu)的時候,擴展性提供了一種方法,讓程序員們不需要重寫代碼、重新執(zhí)行艱巨的任務(wù)。當(dāng)應(yīng)用可以成功的擴展時,各種軟件就可以很好的運行在目前的雙核與四核處理器架構(gòu)上了,乃至未來更多核的架構(gòu)。
擴展性是否是新的免費午餐?這也許不是“免費啤酒”那種意義上的免費。擴展性承擔(dān)了一部分工作。其目標(biāo)是讓今天的投資在未來能夠不斷獲得回報。
Forward scaling的定義
Forward scaling是一種軟件設(shè)計方法,能夠讓軟件應(yīng)用運行在今天的多核處理器架構(gòu)中并提供卓越的性能,而且讓這種軟件應(yīng)用也可以適應(yīng)未來更多核心的架構(gòu)。Forward scaling的目標(biāo)就是找到這樣一種技術(shù)――在用戶增加更多處理器內(nèi)核時可以避免重寫整個代碼。這可能么?在許多情況下似乎可以實現(xiàn)。盡管沒有完美的解決方案,但目前可供選擇的方案可以有很大幫助。
Forward scaling與scaling是不同的,因為前者是一個面向未來的擴展性設(shè)計,而非今天。隨著時間的推移,工具會改善,處理器的設(shè)計會改進(jìn),處理的數(shù)據(jù)量也會增長。要想讓未來的代碼更改維持在最小范圍,我們必須為這三個因素設(shè)計一個路徑,使程序在未來可以很好的擴展。
開始設(shè)計時就要注意,今天并不需要為高達(dá)100多個內(nèi)核的架構(gòu)提供擴展性設(shè)計,我們只需要找到一條通往明天的路,同時保護(hù)大部分軟件投資。多年來,我們一直試圖設(shè)計這樣的軟件――為明天的系統(tǒng)準(zhǔn)備就緒的軟件?,F(xiàn)在軟件的擴展性變得更加重要了。
Forward scaling設(shè)計
跟差的程序設(shè)計相比,好的程序設(shè)計會對未來作出預(yù)測并為此做好準(zhǔn)備。富有Forward scaling思維的設(shè)計可以預(yù)見到未來多核心處理器將會盛行。
那么既然如此,我們應(yīng)該如何設(shè)計程序呢?
首先,我們必須摒棄顯然不具擴展性生產(chǎn)的編程方法。避免使用本地線程,如Pthreads, Windows線程, Boost 線程, and Java 線程。一般來說,使用本地線程編寫的代碼,隨著時間的推移根本不會有旺盛的生命力。利用本地線程會導(dǎo)致很多假設(shè)被編入低級程序中。
相反,我們應(yīng)采用基于標(biāo)準(zhǔn)的工具和足夠并行的方法,使我們能夠有機會處理更多數(shù)據(jù)。Forward scaling通過使用簡單的基于標(biāo)準(zhǔn)的工具,提供抽象的并行。OpenMP 、線程庫、英特爾TBB(線程構(gòu)建模塊),或者英特爾MPI 庫都可以確保今天采用的技術(shù)明天仍然有效。
庫將在forward scaling上發(fā)揮關(guān)鍵作用,而且當(dāng)程序員開始大規(guī)模向未來邁進(jìn)的時候,一個好的庫無疑將會存在巨大的需求。當(dāng)然,庫接口還需要不斷改進(jìn),以最大限度地發(fā)揮它的作用。許多開發(fā)者已經(jīng)通過使用英特爾Math Kernel Library(MKL)簡化了編程并可支持更多內(nèi)核。隨著我們的處理器的發(fā)展,英特爾將繼續(xù)調(diào)整該庫以為今后幾年的發(fā)展提供擴展支持。英特爾的MKL目前已經(jīng)提供了應(yīng)對數(shù)以千計的處理器的擴展。今后,更多的庫也能夠達(dá)到這樣的水平。
為了體現(xiàn)forward scaling的優(yōu)勢,軟件開發(fā)人員和他們的客戶必須選擇合適的硬件。在英特爾,我們正在努力實現(xiàn)系統(tǒng)的處理能力、內(nèi)存以及I / O帶寬的平衡。核心數(shù)量在增加,為實現(xiàn)應(yīng)用程序的性能提升,平衡系統(tǒng)是必不可少的。我們還要促進(jìn)處理器和內(nèi)存、處理器內(nèi)核本身之間更好地通訊。我們在英特爾QuickPath互連方面做的工作支持“Nehalem” 架構(gòu),促進(jìn)可擴展性,大大降低了總線帶寬的競爭。當(dāng)然,沒有人會提供完美的平衡,但英特爾的理解是,平衡對保護(hù)軟件投資非常重要。
可擴展性PK應(yīng)用效率
過去,應(yīng)用能夠?qū)崿F(xiàn)高效率是至關(guān)重要的,因為它們都運行在昂貴的硬件上。但是,實現(xiàn)這一高效率是以程序員的生產(chǎn)力為代價的??磥斫窈蟮木置鏁牵旱统杀镜挠布透叱杀镜某绦騿T。創(chuàng)建可擴至使用更多核心的未來并行程序?qū)μ岣呶磥砑軜?gòu)的性能是必不可少的。
著眼于可擴展性而不是把重點放在提高應(yīng)用效率上,通常是更好地利用程序員資源的方法。具成本效益的多核處理器越來越多,降低了計算成本,減少了提供絕佳效率的客戶應(yīng)用需求。如果我們的程序是可擴展的,實現(xiàn)百分之五十效率就足夠了,如果我們指望未來架構(gòu)可達(dá)到同樣的效率水平的話。若沒有實現(xiàn)擴展性,那么從一個程序擠出效率相對來說就沒什么意義。
一旦我們創(chuàng)建了一個可擴展程序,我們又將過上有“免費午餐”的日子。所有新一代架構(gòu)都將有助于提高應(yīng)用程序的性能,程序員可以把精力放在為應(yīng)用添加新功能上,而不是為了跟上架構(gòu)的變化整天忙于重寫代碼。
保護(hù)軟件投資
今天一個好程序需要具有可擴展性。選好了會使程序適應(yīng)未來的架構(gòu)變化,而壞的選擇將無法保護(hù)原來的軟件投資。
對并行多核系統(tǒng)的關(guān)注是否給了我們更多高性能計算機的選擇空間?或者M(jìn)PI會繼續(xù)成為可擴展程序的編程選擇?如果高性能計算程序員繼續(xù)依靠的MPI ,那么非高性能計算程序員是否也會轉(zhuǎn)向MPI呢?在近期內(nèi),MPI將繼續(xù)主導(dǎo)最具擴展性的程序。但從長遠(yuǎn)角度來看,一切皆有可能。
目前,對大多數(shù)程序員來說,擴展性顯然是一個新且重要的話題。選擇更好的具擴展性的方案,將對保護(hù)我們的投資至關(guān)重要。(IT專家網(wǎng))
- 1重慶OA軟件
- 2OA軟件知識
- 3成都OA軟件
- 4福州OA軟件
- 5OA軟件研發(fā)
- 6OA軟件營銷
- 7OA軟件招投標(biāo)
- 8泛普OA軟件價格
- 9云OA軟件及OA租賃
- 10OA軟件人員招聘
- 11OA軟件破解
- 12好用的學(xué)校OA軟件
- 1關(guān)注安全:09年網(wǎng)絡(luò)安全十大預(yù)言
- 2對于2009年九大網(wǎng)絡(luò)安全趨勢的預(yù)測
- 3Windows網(wǎng)絡(luò)安全審計的四部曲
- 4行業(yè)信息安全再揭企業(yè)之痛 63%用戶高風(fēng)險
- 5泛普OA辦公系統(tǒng)的應(yīng)用分布式方式
- 6節(jié)假日期間網(wǎng)絡(luò)安全運維四部曲
- 7淺析語音識別技術(shù)及其發(fā)展
- 8淺談企業(yè)反病毒選擇的四個原則
- 9企業(yè)視頻會議系統(tǒng)催生七層網(wǎng)絡(luò)管理
- 10能源行業(yè)OA軟件采購訂單流程整合示例
- 112009年存儲行業(yè)的三大社會化趨勢
- 12選擇服務(wù)器虛擬化技術(shù)十點必知
- 13虛擬化安全:安全領(lǐng)域的下一個主戰(zhàn)場
- 14可信芯片的基本功能介紹篇
- 15解析云計算安全服務(wù)的利與弊
- 16Web應(yīng)用程序管理的幾大策略
- 17數(shù)據(jù)安全:下一代數(shù)據(jù)保護(hù)解讀
- 18存儲業(yè)面臨決定性突破 信息化突飛猛進(jìn)
- 19中小企業(yè)服務(wù)器虛擬化應(yīng)用的成本分析
- 20神化了的虛擬化推動業(yè)務(wù)變革
- 21汪琪:災(zāi)難恢復(fù)的發(fā)展趨勢與變革
- 22“混搭式”數(shù)據(jù)中心設(shè)計 讓企業(yè)成就高ROI
- 23淺談可信計算芯片標(biāo)注TCM與TPM
- 24開放云端宣言引發(fā)業(yè)界廠商的“內(nèi)訌”
- 25避免與SOA沖突 云計算引起IT專業(yè)人員不舒服
- 262009年存儲與客戶端虛擬化發(fā)展強大
- 27存儲區(qū)域網(wǎng)絡(luò)SAN已開始走向末路?
- 28虛擬化技術(shù)造成操作系統(tǒng)重大改變
- 29搜索引擎優(yōu)化的9個技巧
- 30集團(tuán)企業(yè)過冬 管理軟件如何作為?
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓