研究背景和意義
自從第一台電子計算機在1946年問世以來,計算機科學技術已經發生了巨大的變化。元器件的發展,無疑是過去幾十年來推動計算機技術發展的重要動力,也是最活躍、最具影響的因素。儘管元器件製造技術在不斷改進,積體電路的設計方法不斷更新,但在未來十年內,元器件的速度不可能繼續以以往的速度繼續提高。據SIA預測,目前積體電路製造的主導技術--CMOS技術,在2010年左右可能達到極限。當然,使用非CMOS製造技術,如量子技術、神經網路技術等,可以將元器件的速度再提升到一個新的台階。但是,如果沒有理論與技術上的重大突破,要提髙元器件的速度最終將受到光速和氫原子直徑的限制。而另一方面,人類對計算機系統性能的需求永無止境,套用領域需要計算機解決的問題越來越複雜,規模越來越大。並行處理技術正是基於上述需要而提出的,它是提高計算機系統性能的關鍵技術。過去40年來,科學家提出了很多並行處理技術並設計了各種計算機系統,如SMP和MPP等,它們都極大地提高了計算機系統的整體速度。但由於SMP、MPP的處理器往往是同構的,而套用任務可能包含複雜的內在並行性(如SIMD、MIMD和向量等),不同的並行性可能適合不同的處理機來運行。在SMP和MPP系統中,大部分應用程式僅能獲得其峰值性能的一小部分。傳統的同構計算系統通常在一個給定的機器上使用一種並行編程模型,不能滿足多於一種並行性的套用需求。任何單一類型的機器經常花費大部分的時間在不適合其執行的代碼上。研究和開發支持多種內在並行套用的計算系統是擺在我們面前的重大挑戰,其目的是提髙計算效率,獲取應用程式峰值性能的大部分。異構計算系統支持具有多內在並行性的套用,它可以提高應用程式實際執行性能與其峰值性能的比。一個異構系統通常包括若干異構的計算節點、互連的高速網路、通信接口以及編程環境等。異構處理w可分為粗粒度異構處理和細粒度異構處理。細粒度異構是按指令分配和調度的,通信開銷太大;而粗粒度異構是按指令塊進行調度的,通信開銷可以容忍,是具有開發前景的一種異構處理。粗粒度的異構處理又稱為元計算,支持元計算的系統稱為元計算系統.簡稱元系統.
Internet作為流行的網際網路,具有分布範圍廣、傳輸速度相對較快等特點。在網際網路環境下研究元計算系統.具有重要的現實意義。元計算環境一方面使人們能聚集分散的計算能力,形成超級計算能力,解決諸如虛擬核爆炸、新藥研製、氣象預報和環境等重大科學研究和技術套用領域的問題;另一方面使人們共享廣域網路中的異構資源,使各種資源得以充分利用。我國對高性能計算環境有強烈需求,這不僅表現在髙端科學計算方面,同時表現在各行業對髙端信息服務的需求方面。
系統構成
一個良好的元計算系統主要由三個部分組成:一是儘量簡單而又可靠的使用界面;二是資源管理系統;三是良好的編程模型和高效可靠的運行時環境。其中資源管理系統處於核心地位,它負責整個系統中各個資源的描述、變動、分配與保護,與上層的運行時系統密切合作,保證整個系統的正常運行。資源管理系統需要為不同級別的系統管理員提供強有力的工具或界面來對這些資源進行控制和保護。
研究現狀
近年來,國外在異構計算環境方面開展了實質性的研究工作,美國的研究工作大大領先於其它國家。十年前開始預研,1992年正式提出概念設計,現在異構計算已經成長為高性能計算的一個新的研究熱點。美國各政府部門啟動了幾個與元計算有關的重大研究發展計畫。其中包括:(1)美國NSF的PAC1計畫(Grid計畫)由美國自然科學基金會支持,是80年代的超級計算中心項目的繼續,其目標是試驗未來10-15年美國社會的信息基礎設施。PACI計畫支持了兩個計算聯盟,即Illmois大學超級計算機套用中心牽頭的NCSA和聖地亞哥大學超級計算機中心(UCSD)牽頭的NPACI,其下各連100多個結點。(2)美國能源部的AS-CI計畫是為核武器儲存和虛擬核爆研究而發展的計畫。LosAlamos,Sandia和Livermore三個國家實驗室作為該計畫的超級結點,其目標是至2004年達到每秒100萬億次浮點數的計算能力,以滿足全系統、全物理、全三維的模擬需要。(3)美國國防部高性能計算現代化HPCMP網路是美國國防部建立的髙性能計算的基礎設施,供全國各地4000多名軍事科技人員面向國防的研究和開發使用。該格線包括4個主計算中心和13個分中心,數十個遠程中心。大部分計算能力集成在主中心。四個主中心於1998年共裝備了23套計算機系統,速度從20億次到5000億次不等。該基礎設施大大改變了美國國防科學研究的面貌。
經過近幾年的研究,元計算在國外也有一定的基礎,有不同設計目標的原型或實驗系統產生。I-Way和Globus是比較典型的元計算實驗系統,它們的目標是為遠程用戶提供可視化的訪問髙性能計算平台的接口。其高性能計算平台由現有的美國若干國家實驗室和大學的並行計算系統通過高速網路連線。Globus是元計算系統的基礎構件,提供可供用戶使用的C++庫擴充函式,支持遠程檔案、遠程I/O、資源管理和Nexus通信管理等服務。Globus通過協同操作和在一個廣域分散式環境中擴展執行程式有效地利用了現存高性能計算系統。但隨著服務需求的增加,缺少統一編程接口和模型使用戶使用Globus變得相對困難。而Leglon系統強調工作站簇(或機群)上的並行任務的高效運行。Legion使用C++的擴充性語言Mentat實現,支持基於論證的用戶安全服務、面向對象的虛擬檔案服務和MMPS通信服務。Globe是在荷蘭Vrije大學發展起來的元計算系統設計計畫。它和Globus和Legion有許多相同的設計目標。Globe是運行在現有主作業系統和通用網路協定之上的中間件系統,Globe未提供有力的信息安全服務和用戶安全論證服務。在國內,高性能計算方面的研究也有相當基礎,建立了國家高性能計算中心,但在元計算方面的研究,還處於初研階段,和國外還有較大差距。
關鍵技術
1.網路技術
研究提高網路的性能、可靠性和容錯性,為桌面機提供一個高頻寬的通信系統。另外,高速通信協定和通信服務質量保證技術對元計算系統的研究都非常重要。
2.高效可擴展的分散式並行計算系統
為了使用戶能夠透明地使用網路資源,需要建立一個高效的、可擴展的分散式並行計算環境,並以此為基礎提供各種高級的服務。這個底層的基礎結構應該包括:資源管理與分配通信安全機制容錯機制統一的資源信息服務3.面向用戶的程式設計模型
為了能夠充分發揮元計算系統的特點,需要為元系統設計有效的程式設計模型來充分利用資源。面向對象技術將會是主要的實現技術之一,基於CORBA、Java或者Web等技術的分散式對象技術適合於建造複雜的計算對象和移動計算對象。
4.可視化技術
在元計算中的可視化技術使用圖形、圖像等手段來描述元系統中資源和任務的行為、狀態和結構,為元計算系統的資源管理、作業調度和數據傳輸提供幫助。
5.大型科學套用計算研究
元計算系統的目的是充分利用網路上的各種資源來支持大型的並行分散式計算。因此,對套用的研究也應同時展開,由套用驅動來提出對元計算系統的功能和技術要求,並驗證其技術途徑和技術實現的有效性。
6.高效的程式編譯模型和執行引擎傳統情況下,應用程式在執行前需要編譯成面向某平台的可執行代碼。這些本地碼的平台相關性決定了它們不能跨平台執行。這使得程式在異構環境下的執行和資源的使用受到了一定的限制。解決這個問題的方法是使用平台無關的中間代碼,如使用Java程式編譯後形成的位元組碼,這些中間代碼可以方便地在網路上進行存儲和傳播。由於中間代碼通常是解釋執行的,因而執行的效率比較低。為了解決這些問題,需要對程式的編譯模型和執行引擎進行研究,解決平台無關性和執行效率之間的矛盾。
研究趨勢與目標
元計算系統作為分散式和並行計算的支持平台,具有分散式環境和並行計算的許多共同特點。現有分散式環境和並行系統的設計技術為研究元計算環境提供了強有力的基礎。並行計算模型的研究,並行執行環境、並行編譯技術的成熟,通用並行編程環境MPI、PVM的使用,為開發元計算提供了有力保證。分散式檔案系統和網路檔案系統的研究,特別是OSF/DCE以及CORBA的研究,為研究元計算系統提供了有力的指導和借鑑。但元計算的設計原理和它們不同。目前成為工業標準的DCE和CORBA也是分散式計算工具,但它們只支持分散式計算,不支持並行計算;它們使用客戶機/伺服器模型,而沒有使用並行計算模型;它們主要是為商務開發的,而不是為了進行髙性能計算的。而元計算環境則不同,它具有分散式計算與並行計算兩方面的好處,既可用於商務開發,又可用來進行髙性能計算。
元計算系統的研究將趨向基於Internet的廣域異構環境,並支持成千上萬的屬於不同管理域的計算機節點參與計算和資源共享。在未來,開發一個性能優良的元計算系統將遵循如下的設計目標:
提供單一映象空間:用戶通過單一映象空間透明地操作和使用元計算環境。單一映象空間禁止硬體的邊界,實現異構數據格式的轉換,提供虛擬檔案服務,把分散在各地的主機節點映射成一個統一入口的虛擬機器。
保證用戶站點自治:元計算的節點是Internet網路上的異構節點,參與元系統的這些節點可能屬於不同的管理域。為了保證節點擁有者的合法權益,元計算必須保證各個節點的自主權。在設計元計算系統時,要考慮到毎個節點的最少安裝,實現瘦型服務是十分重要的,也是系統實現擴展的關鍵所在。
提供強有力安全服務:由於元系統的節點具有分散性、流動性,毎類節點擁有的安全功能有所差別,因此,對元系統的節點管理就更顯困難。在設計中,每個節點的安全性必須得到加強,至少不能破壞或降低節點原有的安全特性。
支持高效容錯功能:設計元計算系統應該考慮系統的容錯功能、系統例外處理功能和軟體調試與排錯功能。
支持統一資源管理:由於異構環境的節點各式各樣,元系統必須支持多種體系結構。在元系統中,最好沒有中心節點,整個系統是全分布的。通過中間件來保證異構硬體和軟體的互操作性,進行資源的統一管理和調度。
支持應用程式在元系統上合理調度:在元系統中,除了考慮指派任務給機器之外,還要考慮機器的異構特性,實現任務有選擇的映射和調度。一個應用程式分解的子任務間往往存在依賴關係,依賴任務在異構機器上的調度是元系統設計的重點。
元計算是一個相對較新的研究領域,開發一個髙效、好用的元計算系統還存在一定的困難。一個元計算系統必須和同構系統一樣,具有友好的人機互動界面、統一的編程環境、可靠的通信協定和高效的任務調度算法,並提供與流行的並行編碼軟體如PVM的接口。