英特爾趙軍(Jun Zhao)
隨著多核處理器在PC機上的普及,PC機上的計算方式也要 “改朝換代”了,串行計算將步入歷史,而并行計算時代則逐漸走向主流。并行計算對我們的應(yīng)用有什么影響呢?實現(xiàn)并行計算的最大障礙是什么呢?
在單核處理器時代的初期,程序是以獨占CPU的方式串行執(zhí)行。隨后,隨著操作系統(tǒng)由DOS 到Windows 的變革,單核處理器在PC機上程序的執(zhí)行有了里程碑式的進步,操作系統(tǒng)的并發(fā)調(diào)度和CPU的分時執(zhí)行讓程序執(zhí)行由串行方式變?yōu)椴l(fā)方式(concurrent),CPU的利用率得到了有效的提升。
多核處理器則進一步讓并發(fā)執(zhí)行的多個程序以更高效的并行方式執(zhí)行(parallel),也可以讓一個程序中多個并發(fā)執(zhí)行的線程以并行的方式執(zhí)行。程序的執(zhí)行效率有了本質(zhì)的提升。如果配合虛擬化技術(shù)的實現(xiàn),在不久的將來,多個操作系統(tǒng)同時在一臺PC機上并行運行也會變得稀松平常。就像我們今天在Windows 上可以自由在多個正在運行的程序之間來回切換一樣,我們也可以在多個操作系統(tǒng)之間自由切換。
越來越多用戶的PC系統(tǒng)都具備了雙核甚至四核的處理器。隨著處理器核數(shù)的增加,程序的并行執(zhí)行度可以更高。但是目前不少用戶覺得多核沒有帶來很明顯的性能提升,這是為什么呢?
那是因為現(xiàn)在針對多核開發(fā)和優(yōu)化的應(yīng)用程序還比較少。其中主要原因之一就是開發(fā)并行執(zhí)行程序的難度非常大,程序員面臨的巨大挑戰(zhàn)是如何把需要執(zhí)行的任務(wù)并行化。
要編寫并行度超過4路以上的高效率程序,如果沒有經(jīng)過系統(tǒng)的專業(yè)學習和長期并行編程的實踐經(jīng)驗,編寫出來的程序就很難充分利用多核處理器帶來的并行計算優(yōu)勢。即使是并行編程經(jīng)驗豐富的程序員在編寫并行度較高的程序時,其工作效率相比編寫并行度低的程序時的效率要低得多。