在幾乎所有關于并行計算或并行I/ O的討論中,都會被問及的一個常見問題是:企業(yè)部署的關鍵任務應用是否可以利用該技術的優(yōu)勢?從商業(yè)應用的角度看,答案顯然是“不行”。今天部署的大部分應用依然依賴于順序處理——指令接指令,串行處理。
但也有一些應用對并行計算已經(jīng)準備就緒。例如并行數(shù)據(jù)庫,以及一定程度上的并行文件系統(tǒng),都已經(jīng)在高精尖的高性能計算領域中使用了很長一段時間。然而,這些應用往往只是存在于政府的研究實驗室,或技術學院和大學的計算機系等比較狹窄的領域。
有跡象表明并行技術正在受到越來越多的關注
在不遠的將來,并行技術有可能在商業(yè)世界獲得更廣泛的應用,尤其是在大數(shù)據(jù)分析不斷升溫的情況下。但就目前而言,并行處理的應用程序還沒有廣泛使用。
此外,并行計算的圣杯——通過一種簡單自動的方式將原先設計為串行處理的應用程序轉換為能夠利用并行計算架構——尚未出現(xiàn)。大多數(shù)應用程序,包括最苛刻的hypervisor層的工作負載,也只是基于串行處理架構,將指令以一系列對共享資源請求的方式發(fā)出,稱之為邏輯核心,盡力模擬出并發(fā)或并行執(zhí)行。
這些現(xiàn)實狀況不應該被當作是并行I / O在商業(yè)計算領域的局限。事實上,應用程序希望利用并行I/O并非只是為了提高業(yè)務應用,操作系統(tǒng)或虛擬機的速度。確切地說,應用程序關注并行I/ O是為了能夠以并行方式同時處理來自多個托管應用軟件進程的I / O請求。
從多處理器到多核
隨著20世紀八、九十年代多處理器環(huán)境的演進,每個處理器處理一種應用程序。在一些設計中,某個處理器或一組處理器會以并行方式,專門處理那些由離散的應用CPU所產(chǎn)生的所有I / O。后來,這種設計逐漸轉移到多核處理器中。
在多核處理器中,有兩個或多個實際的處理單元,稱之為核心。每個核心就像單獨的CPU一樣讀取和執(zhí)行程序指令,通常是通過自己的高速緩存從芯片上的其它物理內(nèi)核單獨讀取指令。除了物理上的多核架構以外,通常還有一組進程——一種軟件抽象——運行在芯片上,在英特爾的芯片上稱之為“超線程”,它能創(chuàng)建邏輯核心。邏輯核心也是一種處理單元,能夠同其他的邏輯核心一起在各自的線程中并行處理。