隨著多核處理器在PC機(jī)上的普及,PC機(jī)上的計(jì)算方式也要 “改朝換代”了,串行計(jì)算將步入歷史,而并行計(jì)算時(shí)代則逐漸走向主流。并行計(jì)算對(duì)我們的應(yīng)用有什么變化呢?實(shí)現(xiàn)并行計(jì)算的最大障礙是什么呢?
并行時(shí)代到來(lái)
在單核處理器時(shí)代的初期,程序是以獨(dú)占CPU的方式串行執(zhí)行。隨后,操作系統(tǒng)由DOS 到Windows 的變革,單核處理器在PC機(jī)上程序的執(zhí)行有了里程碑式的進(jìn)步,操作系統(tǒng)的并發(fā)調(diào)度和CPU的分時(shí)執(zhí)行讓程序執(zhí)行由串行方式變?yōu)椴l(fā)方式(concurrent),CPU的利用率得到了有效的提升。
為了讓大家更容易理解串行和并行的概念,這里舉個(gè)形象的例子。如果有一座跨河的橋,它只有一個(gè)車道,由于承重的問題一次只允許一輛車通行,這樣任何需要過河的車輛都要排隊(duì)等候一輛一輛逐個(gè)通過。如果我們多建幾座橋梁或者建的新橋有多個(gè)車道同時(shí)有更大的承重能力,這樣多輛汽車就可以并行通過橋梁,通行效率就大為提高了。現(xiàn)在清楚了串行和并行效率上的差別了吧!
多核處理器則進(jìn)一步讓并發(fā)執(zhí)行的多個(gè)程序以更高效的并行方式執(zhí)行(parallel),也可以讓一個(gè)程序中多個(gè)并發(fā)執(zhí)行的線程以并行的方式執(zhí)行。程序的執(zhí)行效率有了本質(zhì)的提升。如果配合虛擬化技術(shù)的實(shí)現(xiàn),在不久的將來(lái)多個(gè)操作系統(tǒng)同時(shí)在一臺(tái)PC機(jī)上并行運(yùn)行也會(huì)變得”稀松平常”,毫不稀奇,就像我們今天在Windows 里面可以自由在多個(gè)正在運(yùn)行的程序之間來(lái)回切換一樣,我們可以在多個(gè)操作系統(tǒng)之間自由切換。
越來(lái)越多用戶的PC系統(tǒng)都具備了雙核,甚至四核的處理器,隨著處理器核數(shù)的增加,程序的并行執(zhí)行度可以更高,但是目前不少用戶覺得多核沒有帶來(lái)很明顯的性能提升,這是為什么呢?這是因?yàn)楝F(xiàn)在針對(duì)多核開發(fā)和優(yōu)化的應(yīng)用程序還比較少。其中的主要原因之一就是開發(fā)并行執(zhí)行程序的難度非常大,程序員面臨的巨大挑戰(zhàn)就是如何把需要執(zhí)行的任務(wù)并行化。
然而,編寫并行度超過4路以上的高效率程序,沒有經(jīng)過系統(tǒng)的專業(yè)學(xué)習(xí)和長(zhǎng)期并行編程的實(shí)踐經(jīng)驗(yàn),編寫的程序就很難充分利用多核處理器帶來(lái)的并行計(jì)算優(yōu)勢(shì)。即使是并行編程經(jīng)驗(yàn)豐富的程序員在編寫并行度較高的程序時(shí)的效率,相比他/她編寫并行度低的程序時(shí)的效率要低得多。
多核處理器在PC機(jī)上的普及和推廣,英特爾無(wú)疑是領(lǐng)頭人。如果只是硬件就緒,而可以充分利用多核優(yōu)勢(shì)的應(yīng)用程序寥寥可數(shù),那么PC機(jī)并行計(jì)算時(shí)代的到來(lái)只是一句空話。
如何加快并行程序設(shè)計(jì)的速度同時(shí)確保程序并行度達(dá)到高效率呢?主要方法就是:1. 把程序員編程時(shí)需要調(diào)用的標(biāo)準(zhǔn)函數(shù)庫(kù)進(jìn)行重新的并行設(shè)計(jì)和優(yōu)化,例如,標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù)庫(kù),多媒體函數(shù)庫(kù)等等。 2. 并行優(yōu)化的編譯器,調(diào)試工具,優(yōu)化工具等等。
英特爾高效程序開發(fā)工具
在這些方面,英特爾一直在不懈的努力,而且成果在業(yè)界也是有目共睹。為了讓軟件開發(fā)人員可以最高效率的設(shè)計(jì)程序和對(duì)程序進(jìn)行優(yōu)化,英特爾之前開發(fā)了高性能程序設(shè)計(jì)的套件: Intel? Compilers —— 英特爾? 編譯器,如:Intel C++ 和 Fortran 編譯器 11.0 - 英特爾? 集成性能原件 6.0 (Intel? Integrated Performance Primitives 6.0) - 英特爾? 線程構(gòu)建模塊 2.1 (Intel? Threading Building Blocks 2.1)
Intel? Libraries —— 英特爾? 函數(shù)庫(kù) - 英特爾? 數(shù)學(xué)內(nèi)核函數(shù)庫(kù)10.1 (Intel Math Kernel Library 10.1) - Intel? MPI Library 3.2,性能庫(kù)
Intel? VTune? Performance Analyzer ——英特爾? VTune? 性能分析器 - Intel? Thread Profiler For Windows (用于Windows 環(huán)境的 英特爾? 線程剖析器)
Intel? Cluster Tools —— 英特爾? 集群工具 - 英特爾? 跟蹤分析器和跟蹤采集器7.2帶有 MPI正確性檢查器(Intel? Trace Analyzer and Collector 7.2 with MPI correctness checker) - 英特爾? MPI 性能指標(biāo)評(píng)測(cè) 3.2 (Intel? MPI Benchmarks 3.2) 它們用于Windows 平臺(tái)和Linux平臺(tái)的軟件開發(fā)。
Intel? Parallel Studio —— 英特爾? 并行程序開發(fā)套件
為了提高并行程序設(shè)計(jì)的效率,英特爾公司最近還推出了令人激動(dòng)的并行程序開發(fā)套件——Intel? Parallel Studio,它是用于Windows 用戶端的并行程序開發(fā)包。這套件有三個(gè)主要部分組成: - Intel? Parallel Composer(英特爾? 并行設(shè)計(jì)程序): 用于并行程序編碼 & 調(diào)試,利用C/C++編譯器和全面的線程庫(kù)開發(fā)高效的并行應(yīng)用程序。 - Intel? Parallel Inspector(英特爾? 并行檢驗(yàn)程序):檢測(cè)并行存儲(chǔ)與線程錯(cuò)誤,以確保應(yīng)用程序的可靠性。通過快速的代碼解析,更快地發(fā)現(xiàn)和定位線程錯(cuò)誤。 - Intel? Parallel Amplifier(英特爾? 并行調(diào)優(yōu)程序):采用直觀的性能分析工具和優(yōu)化工具,快速找到并行執(zhí)行的瓶頸,對(duì)程序的并行性進(jìn)行優(yōu)化。
上述工具可以讓多線程并行編程更加高效簡(jiǎn)便,使程序在多核系統(tǒng)上得到了性能的飛躍,達(dá)到高能效的最終結(jié)果。
為了讓中國(guó)的編程高手和愛好者熟悉并行編程和這些并行編程工具的使用,由清華大學(xué)和863高性能計(jì)算機(jī)評(píng)測(cè)中心共同主辦, 英特爾中國(guó)協(xié)辦的 2009 “英特爾杯” 全國(guó)計(jì)算機(jī)多核程序設(shè)計(jì)大賽已經(jīng)開賽了。主要面向在校學(xué)生、軟件工程師、以及廣大的計(jì)算機(jī)愛好者。此次競(jìng)賽的主要目的,是推動(dòng)國(guó)內(nèi)的學(xué)生和軟件工程師使用英特爾公司最新的 Parallel Studio 軟件開發(fā)套件來(lái)簡(jiǎn)化多線程編程,提升在多核平臺(tái)上并行程序設(shè)計(jì)與優(yōu)化的能力。(編輯:王小凡)
進(jìn)入論壇>>聲明:IT商業(yè)新聞網(wǎng)登載此文出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其描述。文章內(nèi)容僅供參考。新聞咨詢:(010)68023640.推薦閱讀
5月5日,Windows7RC面向公眾開放下載。微軟臺(tái)灣公司在當(dāng)日的演示會(huì)上稱,Windows7的普及率將高于WindowsVista。 5月7日消息,據(jù)中國(guó)臺(tái)灣媒體報(bào)道,來(lái)自微軟臺(tái)灣公司的消息稱,Windows 7普及率將高于Windows Vista。 >>>詳細(xì)閱讀
本文標(biāo)題:英特爾計(jì)算方式也要 “改朝換代”了
地址:http://m.sdlzkt.com/a/xie/20111230/204177.html