相關概念
作業系統
作業系統是管理和控制計算機系統中軟硬體資源的系統軟體。作業系統的發展主要有兩條技術路線:
(1)單機作業系統。基於馮·諾依曼結構、以單機為單位的資源管理和程式運行平台。包括從最初的批處理系統,到後來的多道程式系統、分時系統和有網路功能的作業系統等。這類作業系統的典型代表有Windows,Linux,Symbian等。由於這類系統的資源管理以單機為單位,當套用需求增加時,其功能就會越來越複雜,系統程式就會越來越龐大,安全性降低。這導致用戶操作複雜、管理維護困難。
(2)網路作業系統。這類作業系統以網路作為資源管理和程式運行的平台,大多是在單機作業系統基礎上加上協定和管理軟體構成。典型代表有Windows7、Android、ChromeOS等。與單機作業系統相比,網路作業系統具有前端功能輕載化、虛擬化、移動化和管理集中化等特點,方便了用戶的管理和維護、提高了易用性和安全性。
但是,無論是單機作業系統,還是網路作業系統,它們都存在著系統過於複雜和龐大、不支持跨硬體和軟體平台等問題。例如,支持桌面軟體的作業系統一般不支持移動軟體;支持Windows的套用軟體也不能在Linux上運行。
透明計算
透明計算是一種為用戶提供服務的計算。其目標是在系統為用戶提供服務時,讓用戶不用知道計算過程和實現細節,只需關心繫統能否提供所需服務和服務質量。為了實現這一目標,透明計算通過網路把運算和存儲分離,伺服器存儲作業系統、應用程式以及用戶數據等軟體資源,終端接近裸機,只存儲最底層的BIOS和極少部分協定和管理程式。用戶服務需要的作業系統和應用程式則通過本文後續的分散式超級作業系統(MetaOS)從伺服器中以分塊或以流的方式調度到終端上運行。由於作業系統、應用程式以及用戶數據都存儲在伺服器上,終端是一個近乎裸機的運行平台,因此,終端可以做到多樣、輕載、安全、易管理和維護。另外,網路伺服器可以存儲多種不同作業系統以及無數的應用程式,形成巨大的“雲”,從而使用戶可以自由地從網上跨軟體和硬體平台獲得所需服務。
透明計算的核心思想包括:(1)計算和存儲分離;(2)提供跨終端、跨作業系統平台的操作和用戶可選擇的服務;(3)伺服器和終端之間通過數據流和塊調度交換指令,雲計算的超級作業系統對整個網路資源進行一體化管理;(4)程式以流的方式被動態調度到指定的終端或伺服器上執行。
雲計算作業系統TransOS
這是一種由谷歌等公司於2008年首先提出的網路計算新模式。這種模式的主要特點在於通過網路,把原來在單台計算機中軟體的運算和存儲分開到用戶終端機和網路伺服器上完成。這種模式把主要軟體(含網統程式、應用程式和數據)存儲在網路上,而用戶的終端機只負責和用戶的互動以及獲取服務,為用戶提供服務的運算既可在網路上的某台計算伺服器上完成,也可雲計算正成為計算機研究和套用的熱點。
概念
單機作業系統只能管理單機的有限資源。現有的網路作業系統還只是在單機的基礎上加上對網路的支持,因此它們不能為用戶提供需要的主動服務。在雲計算環境下,需要一種能夠管理網路軟硬體資源,並為用戶提供服務的超級作業系統。為此,基於透明計算,設計了一種層次化、分散式核心的雲計算作業系統TransOS。與單機和現有的網路作業系統相比,TransOS能夠統一管理由各種異構終端、伺服器、網路、以及傳統作業系統等組成的網路化資源,並能主動為用戶提供按需服務。
特點
TransOS具有如下幾個特點:
(1)將傳統作業系統也作為一種資源進行管理TransOS管理的資源分為三類:第一類是指由終端(群)、伺服器(群)和網際網路組成的硬體平台資源;第二類是指在上述硬體實體資源基礎上,通過設備驅動和虛擬化,形成可供TransOS管理的虛擬化資源;第三類是軟體/數據資源,包括傳統作業系統、應用程式和數據等。因此,與傳統作業系統只管理和調度應用程式和數據不同,在TransOS中,傳統作業系統,如Linux,Windows等本身也是一個被管理和調度的對象。在用戶進行選擇後,相應的傳統作業系統會被TransOS調度到用戶終端上執行,完成用戶所要求的計算任務。TransOS的任務就是統一管理和調度上述的三類資源,形成一個基於透明計算的雲計算超級作業系統。
(2)分散式核心,動態調度運行
TransOS的核心分布在用戶終端和伺服器上。如圖2所示,TransOS核心的很小一部分,駐留在終端BIOS上,其它核心部分則駐留在伺服器上。需要注意的是,圖2中只畫出了一(終端)對一(伺服器)的情形。在實際中,會存在多對多的情形。當終端啟動後,駐留在BIOS中的TransOS核心部分負責獲得終端控制權,並與伺服器聯繫,獲得系統運行所需要的更多核心代碼,並動態以塊流的方式載入到終端側執行[10]。塊流的含義是指每次只按需從網路伺服器上獲取一小部分代碼或者數據塊到終端上進行計算,如此循環反覆,形成從網路伺服器到終端的流。需要說明的是,TransOS上面支持的實例作業系統、應用程式以及數據等也都是以塊流的方式被動態調度到終端側執行。
(3)運行在BIOS之上,實例作業系統之下
如圖2所示,TransOS通過EFI(ExtensibleFirmwareInterface)等標準接口實現對不同終端硬體架構,如x86、ARM、MIPS等的支持。TransOS在由BIOS負責啟動運行後,會與伺服器聯繫,將網路伺服器能夠支持的實例作業系統顯示給終端用戶進行選擇。在用戶選擇後,再由它從伺服器上以塊流方式調度用戶所選擇的實例作業系統到終端上執行。
(4)分散式網路化資源的統一管理和調度
如圖3所示,TransOS管理的是一個跨網路、跨終端和伺服器平台的自治網路系統。為了能夠統一管理分布在不同地方的網路軟硬體資源,TransOS將其功能按照運行的地點,分為TransOS客戶端和TransOS伺服器端。TransOS客戶端和伺服器端通過協定通信,共同維護和管理分布在不同地點的網路軟硬體資源,包括終端硬體、伺服器硬體、網路、實例作業系統、應用程式及數據等,並按照用戶需求,統一調度相關資源,以供用戶使用。一般而言,TransOS客戶端運行在用戶終端設備上,而TransOS伺服器端則運行在網路伺服器上。
科學計算操作
科學計算,指的是在計算機發明後利用計算機進行的科學領域的數值計算。科學計算問題大體上包括如下三個涵義:
問題本身以及問題的解答都能夠使用數學語言予以精確描述;
如果要使用通常的數學方法來給出我們所需要的數值答案,會很麻煩或者根本無法給出;
問題以一定的科學與技術知識作為背景。
特點與套用
科學計算領域主要包括
氣象預報、地質勘探、天體研究、基因研究、
生命科學等,如果將工程設計也歸類到廣義的科學計算中,那么核武器模擬、航空航天設計、汽車設計、材料設計、藥物篩選等都應屬於科學計算套用。此類計算的特點在於大數據量的浮點運算,數值的變化範圍廣,屬於典型的CPU密集型套用,其中部分同時屬於I/0密集型。科學計算套用對計算平台的性能要求可以說是業界最高的,高速度、高精度、大容量存儲和高自動化性能缺一不可。由以上特點決定,較大規模的科學計算往往需要在超級計算機上進行。
目前在
曙光4000A超級計算機上運行的典型科學計算程式有用於氣象預報的
MM5和用於
生物蛋白質計算的mpiBLAST等。另外,常用來對計算機系統進行科學計算性能評價的Linpack Benchmark和NAS Parallel Benchmark(
NPB)等測試程式也屬於此類套用。
提升性能途徑
大規模科學計算由於涉及到海量的數據,即便是在高性能的超級計算機上進行,完成一次完熬計算任務的時間往往也是要以周甚至月做單位。所以提高科學計算的性能一直是計算機學科的一個主要研究方向。提高科學計算性能可以從硬體和軟體兩方面實現。
從硬體角度提升科學計算性能的手段主要有:
1)提高單個處理器性能和記憶體頻寬,降低記憶體訪問延遲:
2)擴展並行規模,即增加處理器的數量和記憶體的容量;
3)提高並行通信硬體的頻寬,縮小通信延遲。
對以CPU占用為主而幾乎不需要各子進程間進行的計算密集型科學計算任務來說, 1)和2)有良好的效果。而當計算任務的顆粒度較細,各子進程問需要經常性的同步時,對系統整體性能影響最大的是通信子系統的效能,故31是最為有效的辦法。但是無論如何,硬體更新換代的速度相對人們不斷發展的科學計算要求,都是難以滿足需要的,同時高昂的費用也不允許人們頻繁的對硬體進行升級。並且,根據Amdahl定律,並行計算的整體效率隨著並行節點數的增加而下降。所以,根據所用硬體和具體套用的特點,有針對性的對計算中使用的系統軟體和套用軟體進行最佳化,使硬體能夠儘可能充分的發揮出效能,是至關重要的。
通過軟體上的最佳化以提升計算性能的手段主要有:
1)重新編排套用軟體自身,最佳化資源使用效率,降低串列執行部分在全部代碼中所占的比例;
2)針對作業系統的資源管理算法進行最佳化,使管理策略更適合應用程式;
3)根據硬體的特點,針對作業系統和底層驅動程式進行最佳化,使軟體能夠充分利用硬體資源,儘量完全發揮出硬體的性能。
4)其中,從作業系統角度進行的最佳化具有適應面廣、針對性強、入手點多和對應用程式透明等特點,廣泛為研究人員所採用。