文章內容

article_man_pic

雲端運算(Cloud computing)

Hightech   2017-01-22    A20170122001
點閱 1023
評論 2
進階
article_pic

 

❒ 電腦與處理器的演進
在介紹雲端運算之前,我們先簡單介紹電腦與處理器是如何演進的,主要有下列幾個演進階段:
➤單核心處理器(Single core processor):只有一個處理器核心來進行運算工作。
➤雙核心與多核心處理器(Dual/Multi core processor):使用雙核心或多核心處理器來運算,就好像一個人工作速度太慢,就找兩個人或許多人一起來做,這樣可以加快完成的速度,目前幾乎所有的處理器都是屬於雙核心或多核心。知識力www.ansforce.com。
➤多處理器與單主機板:許多處理器在同一個主機板上形成一台超級電腦,可以讓許多處理器一起工作,來加快完成的速度,目前的伺服器仍然使用這種架構。
➤多處理器與多主機板:一個處理器在一個主機板上,再利用網路將這些主機板連結起來一起工作,來加快完成的速度,這就是雲端運算的概念了,問題是,這麼多的處理器與主機板用網路連結起來,要由誰來分配運算工作?又該如何分配運算工作呢?大家有沒有聽過一句話:一個和尚挑水喝,兩個和尚抬水喝,三個和尚沒水喝,因此,在雲端運算的時代,對於如何分配工作就變得很重要了。

 

❒ 平行處理的觀念
前面曾經介紹過處理器所使用的指令稱為「硬體指令(Hardware instruction)」,一般而言硬體指令的執行有下列兩種方式:
➤一般處理:等處理器完全執行完第一個指令,再執行第二個指令,再執行第三個指令,依此類推,如<圖二(a)>所示,假設執行一個指令要4個時脈(Clock),則圖中可以看出,我們花了8個時脈才執行二個指令,這樣是不是很沒有效率呢?
➤管線處理:將一個指令切割成許多部分,稱為「指令管線(Instruction pipeline)」,然後讓處理器分別執行每一個指令管線,可以分工合作來加快工作速度,如<圖二(b)>所示,假設我們將一個指令切割成四個指令管線:讀取指令(IF:Instruction Fetch)、指令解碼(ID:Instruction Decode)、指令執行(IE:Instruction Execute)、寫回暫存器(WB:Write Back),每個指令管線需要1個時脈,則圖中可以看出,我們花了8個時脈執行5個指令,這樣可以大大提高執行效率。我們以和尚到河邊挑水來做比喻:
1.指令讀取(IF)就像是河邊舀水;
2.指令解碼(ID)就像是裝滿桶子提水上山;
3.指令執行(IE)就像是倒水入缸;
4.寫回暫存器(WB)就像是提著空桶下山。

 

圖二 硬體指令的執行。

 

把和尚到河邊挑水的動作切割成四個步驟來執行,顯然可以提高執行效率。同樣的道理,我們可以將一個軟體運算工作切割成許多部分,再分散給不同的處理器運算,甚至分散給不同的電腦運算,也就是許多處理器或電腦分工合作來完成一個工作,稱為「平行運算(Parallel computing)」或「平行處理(Parallel Processing)」,這樣可以分散負荷節省處理時間;分散風險即使部分處理器或電腦故障也不會造成整個系統癱瘓;獨立性強很容易改變或追加各別處理器或電腦的系統功能;降低成本利用數台低價的電腦取代一部高價的超級電腦。知識力www.ansforce.com。

 

❒ 雲端運算的演進
科學家們剛發明電腦的時候是使用單機運算的,後來因為網路的進步才慢慢發展出雲端運算技術,整個技術演進的過程如下:
➤超級電腦(Super computer):是指運算速度很快的大電腦,擁有很強的處理器,需要很大的記憶體,所以佔用很大的空間,可以使用雙核心或多核心處理器來運算,也可以將許多處理器放在同一個主機板上一起工作,來加快完成的速度,利用這種方法需要很高的成本,並非一般人所能負擔得起。
➤叢集運算(Cluster computing):是指將一組架構鬆散的電腦硬體連接起來,同時開發可以分工合作的軟體程式,讓這些電腦硬體與軟體分工合作完成運算工作。常見的系統有下列兩種:利用一種訊息傳送標準軟體架構,讓UNIX或Windows作業系統的電腦經由網路連結在一起,將許多電腦的運算能力與儲存元件結合在一起使用,形成一台大型電腦,我們稱為「平行虛擬機器(PVM:Parallel Virtual Machine)」,後來科學家又提出了「標準訊息傳送介面(MPI:Message Passing Interface)」的方法,可以在分散式記憶體平行系統內進行訊息傳送。
➤分散式運算(Distributed computing):把需要進行大量運算工作的數據先切割成許多「區塊(Block)」,再將這些區塊分散給網路上不同的電腦分別計算,計算完成後再將結果整合起來,其中最重要的是「遠端程序呼叫(RPC:Remote Procedure Call)」,可以讓操作者在某一台電腦中撰寫一個程式,但是分散在不同的電腦上執行,而且不同電腦上的程式可以互相溝通,即使不同電腦所使用的作業系統不同。例如:美國加州大學柏克萊分校的空間科學實驗室所主辦的SETI@Home計畫(Search for Extra Terrestrial Intelligence at Home)與Einstein@Home計畫,就是透過網際網路利用家庭的個人電腦處理天文數據的分散式運算工作。知識力www.ansforce.com。
➤格網運算(Grid computing):將網路上許多不同的電腦資源組織起來形成一台虛擬的超級電腦,可以利用網路上許多不同的電腦閒置的處理器與記憶體,解決大規模的計算問題,格網系統透過共同的程式語言與通訊協定,連結全球各地的運算資源與資訊服務,以滿足區域使用者不同的需求,對使用者來說,格網系統這種高度整合的網路應該具有「通透性」,也就是遠端提供的服務用起來會像是由區域電腦提供的服務一樣。例如:由Globus Alliance組織開發的Globus工具包(Globus toolkit),是開放原始碼的工具包,可以用來架構網格運算的基礎環境。
➤公用運算(Utility computing):是一種理想的企業資訊架構,讓資訊服務模仿公用事業服務的方式進行,例如:供應水、電、瓦斯都是「用多少付多少」,而且「隨需即用」,在使用付費的基礎上,可以靈活的讓資訊資源配合企業流程,來提升營運價值,同時降低成本。目前由於公用運算的使用內容、計費方式、資訊系統管理方式仍然不夠明確,因此企業對於使用這種服務仍然有疑慮。例如:昇陽公司(Sun)利用SRS Net Connect為全球客戶提供資訊服務;IBM、HP和Computer Associates等公司也都推出各自的公用運算方案。
➤雲端運算(Cloud computing):透過網路將龐大的運算處理程序自動分割成無數個較小的「子程序(Sub process)」,再交由多部電腦主機或伺服器所組成的龐大系統經由搜尋與運算分析之後,再將處理結果回傳給用戶端(Client)。例如:GFS(Google File System)是開發在Linux作業系統上的分散式檔案系統,適合大量資料存取與應用;Google BigTable是為了非常大量的結構性資料而設計的分散式儲存資料庫;Google MapReduce是一種簡化平行運算的程式設計模型,用於處理大規模資料的平行運算工作。

 

【請注意】上述內容經過適當簡化以適合大眾閱讀,與產業現狀可能會有差異,若您是這個領域的專家想要提供意見,請自行聯絡作者;若有產業與技術問題請參與社群討論。
 

【延伸閱讀】其他詳細內容請參考「雲端通訊與多媒體產業,全華圖書公司」。<我要買書