Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

分散式及平行式電腦應用技術趨勢綜述

上網時間: 2007年10月30日     打印版  Bookmark and Share  字型大小:  

關鍵字:分散式系統  COTS  平行式系統 

科技運算的趨勢正快速推動分散式及平行式運算應用的發展與普及。這些趨勢包括提供價廉且高效能分散式運作環境的商業軟體(COTS)電腦叢集;具備可將電腦叢集管理化繁為簡功能的作業系統。此外,現在許多排程器已可支援多叢集架構,以及用於各種分散式系統平行式系統的軟體資料庫與工具。這些延伸的新功能讓科學家及工程師們可以互動地進行分散式或平行式應用,並讓現存的系統於分散式環境中運作。這篇文章所探討的是科技運算的主要趨勢,以及這些趨勢對於軟體商與科技及高效能運算應用(HPC)研發者之影響。

科技運算應用

科技運算應用一般可歸類為序列式應用系統、分散式應用系統,以及平行式應用系統。序列式應用系統為大多數人們所使用的軟體類別,這類軟體系統係單獨於單一電腦上來執行運作。分散式應用系統係運用多個計算引擎,可於單一或多部電腦上執行,並包含多個不相互影響的工作。分散式應用系統,像是Monte Carlo透過模擬系統,通常會以不同的輸入參數去不斷重複執行同一個演算法。平行式應用系統同樣也運用在多個可於單一或多個電腦上執行的運算引擎,但平行式系統的工作項目為獨立的且是在軟體執行時相互交換資料的。透過這些工作常會使用較大的資料集。每一種科技運算應用系統都正處於明顯的發展階段。

除了將科技運算運用於演算法則的開發外,現在的趨勢是將想法快速轉換成可用於商業產品的商業性演算法則。從前主要從事問題分析的研究者漸漸轉換至應用設計的資料分析上,並使用相關工具以從其資料中得取有用之見解。應用系統的開發與傳送也逐漸標準化,這部分包括用於開發整個機構的工具及方法。所有這些趨勢都將使科技運算應用的規模及複雜度不斷增加。最後,研發者皆發覺大部分的應用都會超過其電腦所能提供的記憶體效能或者需要很長的執行時間。像這樣先天的限制成為正式驅動序列式應用系統漸漸轉換為分散式或平行式系統最大的原動力。

低成本硬體

過去只有有能力購買超級電腦的大企業才有機會獲得高效能的電腦處理能力。但是近10年來,標準的商業軟體(COTS)電腦平台已發展至快要與超級電腦並駕齊驅的地步了。現今幾千元就可買到的COTS電腦叢集(computer cluster)已經具備10年前的百萬級超級電腦所擁有的運算能力。低階的HPC市場大量成長,而大型企業的叢集電腦需求降低,皆顯示了叢集電腦正快速地應用在互動式的個人應用之事實。個人叢集(clusters)的互動性極具意義,因為它讓實體模擬得以進行互動;過去實體模擬必須以批次(batch)方式進行,並且涉及工作的提交和擷取。

今日低成本叢集式(cluster)電腦有許多種形式。標準型電腦,從具有單一處理器到單一處理器中有多個運算核心,以至於到現在甚至有多個處理器。光是這樣朝向多處理核心的改變,就已經足以致使單一機器必須要去支援分散式及平行式系統應用。由於單一處理器無法解決今日的複雜問題,因此工程師及科學家們必須選擇使用:

於單一機器的多個執行緒(thread)

於單一機器可能包含多個執行緒的多個進程(process)透過

多部電腦的叢集透過

在人們提出以下問題的同時,亦即當人們正視到該使用單一機器或單一叢集(cluster)時,許多叢集正經由大型跨企業格網(grid)串連在一起,像是美國的Teragrid或歐洲的EGEE等。這些格網(grid)解決方案,代表著一個快速成長的趨勢,尤其是在學術界之中。

基礎服務的排程器(Schedulers)以及作業系統

有許多新的資源管理解決方案,將可用以協助工程師及科學家們使用分散式電腦系統。作業系統提供商正努力簡化叢集(cluster)的管理並減低對IT資源的依賴性。舉例而言,微軟的叢集電腦服務(CCS)係鎖定依賴專屬IT支援團隊的部門性以及工作群組級的使用者。數十家商業化排程器製造商以及許多免費排程器軟體商現在都支援多叢集架構。排程器可提供進階的排程功能、批次工作支援、使用率極效能之改善,以及大小彈性、可靠度和安全性之進步。開發並將LSF排程器商業化的Platform Computing公司,目前已經提供服務給1,700家透過Fortune 2000的公司。

分散式及平行式工程軟體工具的誕生

過去,使用叢集幾乎都需要有非常進階的程式技術,但很多工程師和科學家在這方面卻很缺乏。研發HPC應用的工程師及科學家過去必須以低階語言(像是C語言或FORTRAN)使用信息傳送介面(Message Passing Interface,MPI)透過,或者以較高階的語言撰寫程式,再以C或FORTRAN重新編寫這些程式來使用MPI。這種方法既昂貴又花時間,且容易出錯。就連傳統的HPC使用者,都想找更好的程式撰寫工具。

有鑑於此,透過MathWorks開發出可讓使用者利用互動式地開發分散式及平行式應用的工具MATLAB透過,並且用Simulink透過配置模型,以於叢集系統或多核心系統或多處理器電腦上執行。分散式電腦系統工具箱(Distributed Computing Toolbox)讓使用者能夠以桌上型電腦對分散式系統及平行式系統進行實體模擬。MATLAB分散式電腦運算引擎讓使用者調整其軟體成為叢集程式而不需改變其軟體本身。兩種工具都支援電腦資源的互動式使用以及資源的傳統批次使用方式。他們也利用業界標準的介面,像是MPICH2以及ScaLAPACK等。另外,MATLAB現在也支援一些核心演算法的多執行緒,讓序列式的應用系統也能享受硬體改變的好處。

有了分散式電腦系統工具箱(Distributed Computing Toolbox),分散式的系統應用軟體可以分割成不同的獨立工作,而這些獨立工作能夠進一步地分配至叢集點。在最簡單的情況中,問題可以分解成具有相同輸入及輸出參數數量的相同函式,而一個函式呼叫就能平行處理問題。在較複雜的系統中,只需幾行程式碼即可。

對於平行式電腦應用的程式碼撰寫,分散式電腦系統工具箱(Distributed Computing Toolbox)支援平行式for迴圈以及利用分散式陣列的共用陣列語法 。分散式陣列將陣列的區段儲存於參與的實驗室,並在所有實驗室中均顯示為一般的陣列。分散式陣列讓使用者於平行式應用開發中不需要去管理信息傳送的低階細節。

互動式程式撰寫以及現有應用軟體之重複使用

這樣新一代的程式設計工具讓使用者能互動式地為分散式及平行式電腦系統設計並撰寫新的或已存在的程式。通常,只要對於現有程式碼作出些微改變,甚至是完全不需要有任何改變,使用者就可以互動式地利用電腦叢集對其應用程式進行實體模擬。這樣的能力過去只有序列式應用程式具備,但是現在分散式及平行式應用也已具備了。舉例來說,在平行式系統應用中,程式設計者可以直接對分散存在於叢集處理器中的D陣列使用轉置功能。轉置後的矩陣E,同樣也分散於各處理器中:

>>E=D'

這段程式碼跟在序列式系統應用中用以轉至一陣列的程式碼是完全相同的,而在這兩種情況中,其均可以互動方式鍵入並執行。

真實案例

倫敦大學所主辦的國際線性加速碰撞器(International Linear Collider,ILC)計劃,提供我們一個分散式電腦系統如何對大型運算有利的實際案例。ILC由兩組線性加速器所成,每組加速器皆為20公里長,並可將電子及正子向著對方加速以達到高至1,000Giga電子伏特的能量。

就連非常小的干擾,像是小的地?震動事件、月球引力,或者火車或汽車經過所造成的震動,都可能會影響到厚度小於5奈米的ILC粒子束之對齊性。為了確保粒子數能正面發生撞擊,研究人員正在開發一個即時粒子數對齊控制系統。這項計劃倚賴精確的模擬,而這樣的模擬需要整個ILC的精確模型。每項模擬都必須追蹤加速器中上百萬的個別粒子,並將地面的震動效應也列入其計算中。

過去如果使用高階個人電腦跑這樣的模擬常要花上三天的處理時間。ILC現在用MathWorks的分散式電腦運算工具在一個使用Maui排程器並具備可攜式批次佇列的電腦叢集中同時執行超過100個模擬。這種方法可以在過去執行一個模擬的相同時間內同時執行100個模擬,而他可以替該計劃省去好幾百天的模擬時間。

本文小結

數個不同的趨勢造就了工程師和科學家得以開發可同時存取許多電腦運算資源的系統應用。他們因此而能夠更快速地解決更大且需要更強大運算能力的問題。應用設計也必須列入考量,因為在單一機器上所開發的系統應用也應該要能夠利用MathWorks分散式電腦運算工具擴大適用於多個機器,工程師以及科學家現在可以更容易地開發分散式及平行式系統應用,而這些系統應用可以適用於單一個到許多個機器不等。

作者:Loren Dean

資深工程經理

The MathWorks公司




投票數:   加入我的最愛
我來評論 - 分散式及平行式電腦應用技術趨勢綜述
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首